<?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=TRIEX</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=TRIEX"/>
	<link rel="alternate" type="text/html" href="https://gswiki.play.net/Special:Contributions/TRIEX"/>
	<updated>2026-09-16T01:03:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.12</generator>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Icy_cloak&amp;diff=261754</id>
		<title>Icy cloak</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Icy_cloak&amp;diff=261754"/>
		<updated>2026-07-28T04:35:31Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;TRIEX: Initial creation of the page for the Icy Cloak from Currents of Myth 2026 premium festival.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td&amp;gt;&amp;lt;!-- Please see Help:Item scripts page for instructions on how to properly create and format an item page.--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ice cloaks&#039;&#039;&#039; are highly scripted cloaks that were introduced at [[:Category:Currents of Myth|Currents of Myth]], the 2026 [[:Category:Premium Festival|Premium Festival]]. They have a normal side and an empowered side that are both fully alterable ([[long description]] and [[show description]]) and have ambient messaging while empowered. The empowered side reflects the icy nature of the cloak.&lt;br /&gt;
{{TOC limit|2}}&lt;br /&gt;
==Analyze==&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You analyze the cerulean nyra cloak and sense that the creator has provided the following information:&lt;br /&gt;
&lt;br /&gt;
This cerulean nyra cloak will react to ice and water spells being cast at it and transform into an ice-covered cloak!&lt;br /&gt;
While in this state it has ambient messaging.&lt;br /&gt;
Verbs:  BOW, PULL, PUSH, SHAKE, WAVE, ATTEND, CLEAN, PINCH, NUDGE, PROD, WAGGLE, and INVOKE.&lt;br /&gt;
&lt;br /&gt;
It is fully alterable, but the fabric form must remain actual fabric.  The icy form is also alterable, and the ice-clad description (long + show) can make reference to the cloak being EMPOWERED.&lt;br /&gt;
&lt;br /&gt;
When altering cloaks, please keep in mind that the messaging references a long garment.&lt;br /&gt;
The ice crystal color may also be customized.  There&#039;s more room than the traditional 15, so color descriptions needn&#039;t be one word&lt;br /&gt;
only, but let&#039;s keep it reasonable.  &amp;quot;Azure and silver&amp;quot; = Okay. &amp;quot;Gold-hearted scarlet&amp;quot; = Okay.&lt;br /&gt;
Brightly luminescent absinthe green-tinged aquamarine and cerulean = Too much.&lt;br /&gt;
&lt;br /&gt;
CURRENT SETTINGS:&lt;br /&gt;
Normal cloak:  a shimmering cerulean nyra cloak layered with crystal droplets&lt;br /&gt;
Show of normal cloak:  Dyed a rich shade of cerulean, the cloak is woven from shimmering glassthread nyra.  Layers of tiny droplets are sewn into the material, creating a fall of crystals down the garment&#039;s length.  A cluster of veilspire pearls set in an oval frame of silver clasps the cloak over one shoulder.&lt;br /&gt;
&lt;br /&gt;
Iced Over cloak:  a flowing ice-covered cloak layered with frosted droplets&lt;br /&gt;
Show of Iced Over cloak:  Dyed a rich shade of cerulean, the cloak is woven from shimmering glassthread nyra.  Layers of frosted droplets cover the material, creating a fall of ice down the garment&#039;s length.  A cluster of veilspire pearls set in an oval frame of silver clasps the cloak over one shoulder.&lt;br /&gt;
&lt;br /&gt;
Ice color:  cerulean-flecked silver&lt;br /&gt;
&lt;br /&gt;
You can tell that the cloak is as light as it can get and that its pockets could not possibly get any deeper.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Usage==&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier. For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Style&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|ATTEND&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You briskly ruffle your hands through the excess fabric of your cerulean nyra cloak, causing any wrinkles to fall away and leaving the lengths to drape in smooth folds.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) briskly ruffles (her/his) hands through the excess fabric of (her/his) cerulean nyra cloak, causing ripples in the fabric that race from hip to hem.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|ATTEND&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You briskly ruffle your hands through the excess fabric of your ice-covered cloak, and tendrils of cerulean-flecked silver icy mist chased by snowflakes follow the motion of your hands before retreating again to the fabric of your ice-covered cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) briskly ruffles (her/his) hands through the excess fabric of (her/his) ice-covered cloak, and threads of cerulean-flecked silver icy mist chased by snowflakes follow (her/his) hands before retreating again to the fabric of (her/his) ice-covered cloak.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|BOW&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You gently take hold of a fold of your cerulean nyra cloak with your left hand and pull it behind you, your right hand in front of you as you take a short bow.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gently takes hold of a fold of (her/his) cerulean nyra cloak with (her/his) left hand and pulls it behind (her/him), (her/his) right hand in front of (her/his) body as (she/he) takes a short bow.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|BOW&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You bow deeply, sweeping your ice-covered cloak behind you.  As your fingers brush across the fabric of your ice-covered cloak, a series of chasms open in the icy surface, each releasing plumes of cerulean-flecked silver vapor.  The mist shatters, sending shards of colorful ice flying.  Before the small chunks make contact with anything, they dissipate into a fine, cooling mist.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) bows deeply, sweeping (her/his) ice-covered cloak behind (her/him).  As (her/his) fingers brush across the fabric of (her/his) ice-covered cloak, a series of chasms open in the icy surface, each releasing plumes of cerulean-flecked silver vapor.  The mist shatters, sending shards of colorful ice flying.  Before the small chunks make contact with anything, they dissipate into a fine, cooling mist.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|CLEAN&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You make a cursory account of yourself, brushing your hands across the front of your cerulean nyra cloak and assuring yourself that everything is perfectly in place.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) brushes (her/his) hands across the front of (her/his) cerulean nyra cloak, as if assuring (herself/himself) everything is perfectly in place.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|CLEAN&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With a disaffected nonchalance, you brush at the shoulder of your ice-covered cloak, throwing shimmering cerulean-flecked silver ice crystals from your fingertips as you arch a single brow.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) brushes at the shoulder of (her/his) ice-covered cloak with a disaffected nonchalance, and a flurry of shimmering cerulean-flecked silver ice crystals are thrown from (her/his) fingertips as (she/he) arches a single brow.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|INVOKE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You concentrate on the magical ice of your ice-covered cloak...&amp;lt;br/&amp;gt;Illuminated with brilliant cerulean-flecked silver energy, the ice of your ice-covered cloak blossoms into a shrieking snowstorm that engulfs you!  The frigid ice of the cocoon does nothing to impede your vision.  With a cracking roar, the ice swirls around you, throwing off a cascade of shimmering cerulean-flecked silver ice crystals.  Faster and faster the blizzard rages and with a sudden hiss, it vanishes, leaving you unharmed but certainly the center of attention.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Illuminated with brilliant cerulean-flecked silver energy, the ice of (Character)&#039;s ice-covered cloak blossoms into a shrieking snowstorm that engulfs (her/him)!  With a roar, the frigid cocoon begins to swirl around (her/him), throwing off a cascade of shimmering cerulean-flecked silver ice crystals.  Faster and faster the blizzard rages around (Character)!&amp;lt;br/&amp;gt;With a guttering hiss, the snowstorm vanishes, leaving (Character) unharmed in its center.  Tiny snowflakes swirl around (her/him) for a moment before winking out.  A faint cerulean-flecked silver light illuminates (her/his) eyes.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|NUDGE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With your hand inside the cerulean nyra cloak, you give it a small nudge, causing the fabric to puff out briefly before falling back into place.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) flicks (her/his) hand inside the fabric of (her/his) cerulean nyra cloak, causing it to puff out briefly before falling back into place.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|NUDGE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With your hand inside the ice-covered cloak, you give it a small nudge.  In response, a spray of glittering cerulean-flecked silver snowflakes are thrown from your shoulders, and as they fall, they dim into a hazy mist winking out at your heels.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;A spray of glittering cerulean-flecked silver snowflakes erupts from the shoulders of (Character)&#039;s ice-covered cloak!  As the shimmering ice crystals fall, they dim into a hazy mist before winking out around (her/his) heels.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PINCH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You idly pick at an invisible flaw in the fabric of your cerulean nyra cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&amp;lt;!-- Third person messaging for PINCH in the normal state has not been captured. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PINCH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You idly pick at an invisible flaw in the fabric of your ice-covered cloak and give a start when the ice engulfing the fabric spreads to your fingertips.  With a smoldering glare, you focus your gaze on the cerulean-flecked silver ice on your fingertip, and it shrinks and shudders before spreading back to the frigid covering on your cloak that birthed it.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) idly picks at an invisible flaw in the fabric of (her/his) ice-covered cloak.  A cluster of cerulean-flecked silver ice leaps from the frigid garment to engulf (her/his) fingertips.  With a smoldering glare, (she/he) focuses (her/his) gaze on the ice on (her/his) fingertip, and it shrinks and shudders before vacating (her/his) fingertip and spreading back to the frigid covering on (her/his) cloak that birthed it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PROD&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Your cerulean nyra cloak is not currently iced over; there is nothing to extinguish.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PROD&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With a discordant cracking sound, the cerulean-flecked silver ice covering the surface of your cerulean nyra cloak recedes into the fabric, leaving naught behind but a faint chill in the air.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;With a discordant cracking sound, the cerulean-flecked silver ice covering the surface of (Character)&#039;s cerulean nyra cloak recedes into the fabric of the garment, leaving naught behind but a faint chill in the air.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PULL&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Hooking two fingers discreetly in the excess fabric of your cerulean nyra cloak, you give it the subtlest tug, causing the garment to sway and swoosh, then settle in perfect folds about your legs.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;A gentle touch from (Character) causes the fabric of (her/his) cerulean nyra cloak to sway and swoosh before settling in perfect folds about (her/his) legs.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PULL&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You gather a handful of fabric within your hand, clenching the cloak tightly.  Thin tendrils of frost soon creep upwards along your palm and you let go, the cerulean-flecked silver mist glazing over the fabric once again.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gathers a handful of fabric within (her/his) hand, clenching (her/his) cloak tightly.  Thin tendrils of frost soon creep upwards along (her/his) palm as (her/his) fingers begin to turn blue.  (Character) releases the fabric, the cerulean-flecked silver mist-like frost glazing over the fabric once again.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PUSH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You stiffly smooth your hands over the fabric of your cerulean nyra cloak before clasping them behind your back.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) smooths (her/his) hands over the fabric of (her/his) cerulean nyra cloak before clasping them behind (her/his) back.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PUSH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You stiffly smooth your hands over the fabric of your ice-covered cloak, the cerulean-flecked silver ice crystals darkening under your touch, before clasping them behind your back.  The ice crystals follow the motion of your hands as a frosty deluge of cerulean-flecked silver crystals ripples across the front of your cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) smooths (her/his) hands over the fabric of (her/his) ice-covered cloak, the cerulean-flecked silver ice crystals darkening under (her/his) touch, before clasping them behind (her/his) back.  The ice crystals follow the motion of (her/his) hands as a frosty deluge of cerulean-flecked silver crystals ripples across the front of (her/his) cloak.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|SHAKE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You give your cerulean nyra cloak a lazy shake, clearing any dust or debris from its surface.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gives (her/his) cerulean nyra cloak a lazy shake, clearing any dust or debris from its surface.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|SHAKE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;An avalanche of cerulean-flecked silver crystals forms at the shoulders of your ice-covered cloak, quickly gaining momentum as it falls down the length of your ice-covered cloak.  As the cerulean-flecked silver cascade reaches the lower edge of the garment it tumbles and disperses into a fine layer of cool mist, pooling at your feet.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;An avalanche of cerulean-flecked silver crystals forms at the shoulders of (Character)&#039;s ice-covered cloak, quickly gaining momentum as it falls down the length of the garment.  As the cerulean-flecked silver cascade reaches the lower edge of the cloak it tumbles and disperses into a fine layer of cool mist, pooling at (her/his) feet.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|WAGGLE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You subtly pull your hands inside your cerulean nyra cloak as you feed the fabric a tiny flow of mana.  In a rush that causes the air to distort, cerulean-flecked silver ice crystals erupt and race to cover the garment in a cloak of crystalline ice scales as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;The cerulean nyra cloak wrapped around (Character) suddenly shimmers.  In a rush that causes the air to distort, cerulean-flecked silver ice crystals erupt and race to cover the garment in a cloak of crystalline ice scales as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|WAVE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Taking each side of your cerulean nyra cloak in hand, you swish the garment back and forth, creating a soft rustling whisper of fabric.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Taking each side of (her/his) cerulean nyra cloak in hand, (Character) swishes the garment back and forth, creating a soft rustling whisper of fabric.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|WAVE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Taking each side of your ice-covered cloak in hand, you swish the cerulean-flecked silver ice-covered fabric of your cloak back and forth, casting a flurry of sparkling snowflakes into the air accompanied by an insistent cracking sound like a piece of fracturing ice.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Taking each side of (her/his) ice-covered cloak in hand, (Character) swishes the cerulean-flecked silver ice-covered fabric of (her/his) cloak back and forth, casting a flurry of sparkling snowflakes into the air accompanied by an insistent cracking sound like a piece of fracturing ice.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|CAST&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Ice activating&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You channel at a shimmering cerulean nyra cloak layered with crystal droplets.&amp;lt;br/&amp;gt;As the ice breaks upon the cerulean nyra cloak, the cold is absorbed into the fabric, each thread subtly backlit by a faint glacial light.  In a rush that causes the air to distort, cerulean-flecked silver crystals race to cover the garment in a cloak of living ice as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) channels at a shimmering cerulean nyra cloak layered with crystal droplets.&amp;lt;br/&amp;gt;As the ice breaks upon the cerulean nyra cloak, the cold is absorbed into the fabric, each thread subtly backlit by a faint glacial glow.  In a rush that causes the air to distort, cerulean-flecked silver crystals race to cover the garment in a cloak of living ice as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|}&lt;br /&gt;
==Additional Information==&lt;br /&gt;
The cloak enters its empowered state when an ice or water spell is cast or channeled at it; the messaging above was captured using [[Major Cold (907)]].  The wearer may also empower the cloak without a spell by using WAGGLE, and may return it to its normal state at any time with PROD.&lt;br /&gt;
&lt;br /&gt;
INVOKE is only documented in the empowered state.  PROD used in the normal state returns an informational message rather than scripted messaging.&lt;br /&gt;
===Empowered Ambients===&lt;br /&gt;
{| {{verbtable}}&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
| A blizzard of pale cerulean-flecked silver snowflakes rolls across the fabric of your ice-covered cloak, crashing against the hem in a vibrant, chilly display.&lt;br /&gt;
| A blizzard of pale cerulean-flecked silver snowflakes rolls across the fabric of (Character)&#039;s ice-covered cloak, crashing against the hem in a vibrant, chilly display.&lt;br /&gt;
|-&lt;br /&gt;
| A layer of cerulean-flecked silver rime creeps slowly across your ice-covered cloak, the misty hoarfrost glazing over the fabric.&lt;br /&gt;
| A layer of cerulean-flecked silver rime creeps slowly across (Character)&#039;s ice-covered cloak, the misty hoarfrost glazing over the fabric.&lt;br /&gt;
|-&lt;br /&gt;
| Chasms of razor-edged cerulean-flecked silver frost form along the fabric of your ice-covered cloak, the ice cracking into splayed crystalline patterns across the shoulders and chest before fusing together into a perfectly smooth finish once again.&lt;br /&gt;
| Chasms of razor-edged cerulean-flecked silver frost form along the fabric of (Character)&#039;s ice-covered cloak, the ice cracking into splayed crystalline patterns across (her/his) shoulders and chest before fusing together into a perfectly smooth finish once again.&lt;br /&gt;
|-&lt;br /&gt;
| A sudden chill sweeps through the area as the cerulean-flecked silver mist that encases your ice-covered cloak evaporates away and reforms into a complex crystalline pattern on the surface of the cloak.&lt;br /&gt;
| A sudden chill sweeps through the area, emanating from (Character) as the cerulean-flecked silver mist that encases (her/his) ice-covered cloak evaporates and reforms into a complex crystalline pattern on the surface of the cloak.&lt;br /&gt;
|-&lt;br /&gt;
| Formations of slender icicles suddenly jut from the shoulders of your ice-covered cloak, framing your body in oversized, frigid pauldrons of cerulean-flecked silver ice before melting back into the fabric of your cloak once again.&lt;br /&gt;
| &amp;lt;!-- Third person messaging for this ambient was not captured; the source log repeated the first person text. Needs in-game confirmation. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| A film of cerulean-flecked silver icy mist hardens along the edge of your ice-covered cloak, reflecting rainbow-like patterns in the folds of the fabric.  With a sudden creaking sound, the ice shatters into a shower of snowflakes.&lt;br /&gt;
| Layers of cerulean-flecked silver icy mist harden along the skirts of (Character)&#039;s ice-covered cloak, reflecting rainbow-like patterns in the folds of the fabric.  With a sudden creaking sound, the ice shatters into a shower of snowflakes.&lt;br /&gt;
|-&lt;br /&gt;
| Elongated icicles of cerulean-flecked silver mist jut outward from the sleeves of your ice-covered cloak, lasting but a moment before shattering in frigid puffs of colorful ice crystals and mist.&lt;br /&gt;
| Elongated icicles of cerulean-flecked silver mist jut outward from the sleeves of (Character)&#039;s ice-covered cloak, lasting but for a moment before shattering in frigid puffs of colorful ice crystals and mist.&lt;br /&gt;
|-&lt;br /&gt;
| Tendrils of cerulean-flecked silver icy mist pool at your feet, billowing from beneath your ice-covered cloak.&lt;br /&gt;
| Tendrils of cerulean-flecked silver icy mist pool at (Character)&#039;s feet, billowing from beneath (her/his) ice-covered cloak.&lt;br /&gt;
|}&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Icy gown]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{iteminfo&lt;br /&gt;
|type= Fluff&amp;lt;!-- REQUIRED: Mechanical or Fluff. --&amp;gt;&lt;br /&gt;
|itemclass=Clothing &amp;lt;!-- REQUIRED: Valid options are: Armor, Weapon, Shield, Clothing, Accessory, Container, Creatures (Pets/Mounts), or Miscellaneous. --&amp;gt;&lt;br /&gt;
|itemtype= Cloak&amp;lt;!-- REQUIRED: What items can this apply to. --&amp;gt;&lt;br /&gt;
|alter=Yes&amp;lt;!-- REQUIRED: Can this be altered? --&amp;gt;&lt;br /&gt;
|ld=Yes&amp;lt;!-- REQUIRED: Is this item able to be lightened or deepened? --&amp;gt;&lt;br /&gt;
|feature= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|customize=Yes &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|custom= Ice crystal color&amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|origmerch= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|releasevenue= Currents of Myth&amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|releaseyear= 2026&amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|questitem= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|tiered= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|tiersnumber= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|unlock= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|legendary= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|demeanor= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|loresong= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|corrscript= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|attune= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|attunement= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|spell= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|enhancive= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|swap= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|add= &amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
|restrictions= Must remain actual fabric.&amp;lt;br/&amp;gt;Messaging references a long garment.&amp;lt;br/&amp;gt;Ice crystal color must be kept to a reasonable length.&amp;lt;!-- OPTIONAL --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{itemverb&lt;br /&gt;
|verb= ATTEND&lt;br /&gt;
|verb2= BOW &amp;lt;!-- Verbs MUST be capitalized when entered. --&amp;gt;&lt;br /&gt;
|verb3= CAST&lt;br /&gt;
|verb4= CLEAN&lt;br /&gt;
|verb5= INVOKE&lt;br /&gt;
|verb6= NUDGE&lt;br /&gt;
|verb7= PINCH&lt;br /&gt;
|verb8= PROD&lt;br /&gt;
|verb9= PULL&lt;br /&gt;
|verb10= PUSH&lt;br /&gt;
|verb11= SHAKE&lt;br /&gt;
|verb12= WAGGLE&lt;br /&gt;
|verb13= WAVE&lt;br /&gt;
|verb14=&lt;br /&gt;
|verb15=&lt;br /&gt;
|verb16=&lt;br /&gt;
|verb17=&lt;br /&gt;
|verb18=&lt;br /&gt;
|verb19=&lt;br /&gt;
|verb20=&lt;br /&gt;
|verb21=&lt;br /&gt;
|verb22=&lt;br /&gt;
|verb23=&lt;br /&gt;
|verb24=&lt;br /&gt;
|verb25=&lt;br /&gt;
|verb26=&lt;br /&gt;
|verb27=&lt;br /&gt;
|verb28=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
[[Category:Currents of Myth]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_busker&amp;diff=261060</id>
		<title>Lich:Script busker</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_busker&amp;diff=261060"/>
		<updated>2026-07-17T05:17:50Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Initial documentation published for the first version of the script which is currently being tested.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
[[File:Busker.png|thumb|alt=Example of in-game feedback from Busker|Example of in-game feedback from Busker]]&lt;br /&gt;
{{script&lt;br /&gt;
|title = Busker&lt;br /&gt;
|author = Triex&lt;br /&gt;
|version = 1.2.0&lt;br /&gt;
|compat = WR/WFE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Busker&#039;&#039;&#039; is a [[Lich]] script that plays a musical instrument for you using the [[Verb:PLAY|PLAY]] verb. Once started, it keeps the music going until you tell it to stop. An attended mode is also available, which pauses between songs and lets you choose what to play next.&lt;br /&gt;
&lt;br /&gt;
Busker works for any profession. Non-bards can select a play style (Joyful, Mournful, Soft, and so on); bards additionally get access to specific message numbers once their skill allows it. The script tracks practice time per instrument and can give a rough estimate of your current skill rank based on published community timing data.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Once started, Busker locates your instrument (in hand or in a configured container), waits for a valid location to play (a rest node by default, or a specific room/table you configure), and plays continuously until stopped. It automatically yields to other running scripts you designate (picking, healing, and so on), and stows the instrument if you leave the room while it&#039;s mid-song.&lt;br /&gt;
&lt;br /&gt;
=== Modes ===&lt;br /&gt;
&lt;br /&gt;
By default, Busker just keeps playing, picking a style at random or by rotation each time a song ends, until you tell it to stop. An &#039;&#039;&#039;attended&#039;&#039;&#039; mode is also available: Busker pauses after each song and asks what to play next: a random style, a specific named style, a repeat of the last style, or the next style in rotation. Switch to attended mode at any time with &amp;lt;code&amp;gt;attend&amp;lt;/code&amp;gt;, and back with &amp;lt;code&amp;gt;unattend&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Style Selection ===&lt;br /&gt;
&lt;br /&gt;
All 11 documented PLAY styles are supported (Joyful, Mournful, Soft, Fast, Slow, Intense, Jaunty, Flamboyant, Aimless, Somber, Inspiring). Percussion instruments (tambourine, cymbals) are automatically limited to the three styles they support (Soft, Fast, Slow). The style pool can be further restricted with the &amp;lt;code&amp;gt;styles&amp;lt;/code&amp;gt; setting.&lt;br /&gt;
&lt;br /&gt;
=== Bard Support ===&lt;br /&gt;
&lt;br /&gt;
Busker detects bard status automatically and can be overridden manually. Bards may set a specific PLAY message number (1-11); the game falls back to a random message if the character isn&#039;t skilled enough or the instrument is out of tune, so this setting is safe to leave on for anyone. An optional, off-by-default autotune setting attempts to issue TUNE automatically for bards; this behavior has not been independently verified and is flagged as such in-script.&lt;br /&gt;
&lt;br /&gt;
=== Practice Tracking ===&lt;br /&gt;
&lt;br /&gt;
Busker records cumulative play time, song count, and observed skill rank-ups per instrument in persistent settings. The &amp;lt;code&amp;gt;stats&amp;lt;/code&amp;gt; command reports total time played, songs played, and an estimated current skill rank based on published community timing observations. These estimates are not official game data and should be treated as approximate.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
Busker is started with &amp;lt;code&amp;gt;;busker&amp;lt;/code&amp;gt; and controlled while running via &amp;lt;code&amp;gt;;send to busker &amp;amp;lt;command&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker&amp;lt;/code&amp;gt; || Start with saved settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker &amp;amp;lt;noun&amp;amp;gt;&amp;lt;/code&amp;gt; || Set the instrument noun, then start.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker attend&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;;busker unattend&amp;lt;/code&amp;gt; || Set the mode, then start.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker stats&amp;lt;/code&amp;gt; || Print practice stats and exit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker set &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/code&amp;gt; || Change a setting and exit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;busker help&amp;lt;/code&amp;gt; || Show full help.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
While running, send commands with &amp;lt;code&amp;gt;;send to busker &amp;amp;lt;command&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; || Stop playing, stow the instrument, and exit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attend&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;unattend&amp;lt;/code&amp;gt; || Switch mode without restarting.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; || Play a random style immediately.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt; || Play the next style in rotation immediately.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt; || Play the last style again immediately.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;style &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Play a specific style immediately.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stats&amp;lt;/code&amp;gt; || Print practice stats.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;set &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/code&amp;gt; || Change a setting live.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt; || Show commands.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Setting !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;instrument&amp;lt;/code&amp;gt; || Instrument noun (required).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bag&amp;lt;/code&amp;gt; || Container noun or partial name to stow the instrument in. Optional; without one, Busker will not stow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rooms&amp;lt;/code&amp;gt; || Comma list of Lich room IDs, or &amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;node&amp;lt;/code&amp;gt; (default; plays on any rest node).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;styles&amp;lt;/code&amp;gt; || Comma list to restrict the style pool, or &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; for the full set.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;select&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;rotate&amp;lt;/code&amp;gt;; how Busker picks the next style when playing on its own.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;replay&amp;lt;/code&amp;gt; || Seconds between songs (default 305).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pausefor&amp;lt;/code&amp;gt; || Comma list of other script names Busker yields to (default: tpick, herbheal, useherbs).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bard&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (default), &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autotune&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; (default off). Bards only. Unverified — see notes above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;message&amp;lt;/code&amp;gt; || A PLAY message number 1-11, or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; (default).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Busker cannot tune your instrument reliably in all cases; the TUNE command&#039;s automation behavior is not confirmed for non-bards, and the bard-only autotune option is experimental.&lt;br /&gt;
* Skill rank estimates shown by &amp;lt;code&amp;gt;stats&amp;lt;/code&amp;gt; are drawn from an observational community timing table, not official game data, and non-bard estimates are capped at rank 10 to reflect the [[PLAY|non-bard skill ceiling]].&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=File:Busker.png&amp;diff=261059</id>
		<title>File:Busker.png</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=File:Busker.png&amp;diff=261059"/>
		<updated>2026-07-17T05:15:52Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example of in-game feedback from Busker&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260913</id>
		<title>Lich:Script allmine</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260913"/>
		<updated>2026-07-16T02:37:15Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;TRIEX: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In-game screenshot showing functionality example&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260468</id>
		<title>Lich:Script allmine</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260468"/>
		<updated>2026-07-13T16:01:41Z</updated>

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

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

		<summary type="html">&lt;p&gt;TRIEX: Acknowledged policy clarification regarding Announcement page edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Crossposted Items ==&lt;br /&gt;
*Uploaded Image Patrol: [[User:HOST-GSKEBECHET/Image patrols]]&lt;br /&gt;
*User:talk Crossposts: [[User:HOST-GSKEBECHET/User talk crossposts]]&lt;br /&gt;
&lt;br /&gt;
== Have a question or comment? ==&lt;br /&gt;
&#039;&#039;&#039;Feel free to drop it here!  Please add &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; following your message so I can easily identify who left it and when.  Thank you!&#039;&#039;&#039; [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 10:56, 3 July 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
HOST-GSKEBECHET (talk | contribs) (Added back in the OTS analyze and rearranged a couple things to conform with item script style guide.)&lt;br /&gt;
&lt;br /&gt;
You added back in the Tier 1 analyze in the OTS section. [[User:GS4ALASTIR|GS4ALASTIR]] ([[User talk:GS4ALASTIR|talk]]) 10:46, 25 April 2023 (CDT)&lt;br /&gt;
&lt;br /&gt;
Hello, I added a line that Stormyrain gave permission to use the image of the Sisters on the wiki [[User:STACYWALTER|STACYWALTER]] ([[User talk:STACYWALTER|talk]]) 06:16, 12 October 2023 (CDT)&lt;br /&gt;
&lt;br /&gt;
You&#039;re doing great work. Thank you, I appreciate it. [[User:VANKRASN39|VANKRASN39]] ([[User talk:VANKRASN39|talk]]) 11:42, 7 November 2023 (CST)&lt;br /&gt;
:Thank you! [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]])&lt;br /&gt;
&lt;br /&gt;
Hi, I got your message about the copywrite problems with my image. I created the image myself using Artflow.ai but I have literally no idea how to comply with your request and I can barely even understand it. I cant find the Discord page you linked to either. Could you please walk me through this step by step? I have almost no skill at coding or using the wiki...I created my page by simple cut and paste and rewriting. &lt;br /&gt;
&lt;br /&gt;
Thank you, &lt;br /&gt;
Toxyrox&lt;br /&gt;
&lt;br /&gt;
PS if it would be easier on Discord, my username there is Avondell.&lt;br /&gt;
:Thank you very much!  I have responded on your talk page.[[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:37, 15 November 2023 (CST)&lt;br /&gt;
&lt;br /&gt;
Go ahead and delete the image &#039;Bochser 1.jpg&#039; I just uploaded it to test my script that would allow people to view character portraits in game by directing them to their Wiki character profile and I had no idea it would be such a hassle to just upload an image. - Tgo01&lt;br /&gt;
&lt;br /&gt;
Hello Kebechet!  I did an oopsie last night and created a [[:Category:Profession Services|Profession Services]] category... and this morning, I realized there is a [[Player service]] page that should probably actually be the page used for the Profession Services category.  Is there anyway that you know of to combine the two, under the &#039;Player Service&#039; name/page?  Thanks, and apologies for any hassles this has created!  [[User:GS4-OPTHERIA|GS4-OPTHERIA]] ([[User talk:GS4-OPTHERIA|talk]]) 12:22, 18 November 2024 (CST)&lt;br /&gt;
:Hello!  I ran the topic by the Wiki team, and after confirming have consolidated the information.  The category has been updated to be [[:Category:Profession services|Profession services]] to conform with the [[Gswiki:Style guide|Style guide]], and I have moved the preexisting article to [[Profession service]] to confirm with the standard term for the service type.  Additionally, the article is indexed first (and linked in the explanation of) the category, so it is featured prominently as the article for detailed information on the services.  The original category does not appear to be linked from anywhere, including Discord (as a cursory check), so I have deleted it to avoid some issues with category redirects on the wiki. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:49, 19 November 2024 (CST)&lt;br /&gt;
&lt;br /&gt;
Hello, GSKEBECHET, thank you for helping me out with my image on my page. It is very confusing for me for some reason but I&#039;m grateful you showed me the way. (19 DEC 24)````&lt;br /&gt;
&lt;br /&gt;
Hello! I removed my edits to the Player profile page that violated policy. I apologize as I had forgotten that part of policy. Apologies were issued to the offended character as well - Jumbodog [[User:JUMBODOG|JUMBODOG]] ([[User talk:JUMBODOG|talk]]) 00:27, 4 February 2025 (CST) &lt;br /&gt;
&lt;br /&gt;
=== Timeline - Imperial Northern Aggression ===&lt;br /&gt;
&lt;br /&gt;
HOST-GSKEBECHET talk contribs‎ m  21,289 bytes −54‎  Updating categories; unofficial content such as player-written should avoid manually using the wiki&#039;s over-encompassing categories &lt;br /&gt;
&lt;br /&gt;
Burghalgnome:Sorry was copying the format used by [[Modern Imperial History:5103 - Present]] and [[Protectorate]] both of which are player=written and have manually added categories. Perhaps you can explain.&lt;br /&gt;
:Hi there, BURGHALGNOME.  In response to your question about the categories I adjusted on your article, [[Timeline - Imperial Northern Aggression]], this was done because the article is presented as a character-written essay and was labeled by you as player-written creative content.  Typically, larger over-encompassing categories such as those for an entire nation or race are not appropriate for player-written creative content.  However, smaller and more specialized categories, such as [[:Category:Wehnimer&#039;s Landing Independence]] are still very appropriate; those smaller categories are in turn lumped in with the larger categories to help facilitate users finding related articles.  The examples you shared are standalone articles and not player-written creative content.  There are tens of thousands of articles on the Gswiki, and if some are improperly categorized, other moderators or I adjust them as we run across them.  This is usually, but not exclusively, based on which articles have had recent edits, which is why you likely have seen that many older articles are not necessarily in compliance with current Gswiki Style Guide standards.&lt;br /&gt;
:Hopefully this explanation helps you better understand why I adjusted the categories on your article.  As an aside, if you ever need to add a &amp;quot;signature&amp;quot; to a something communicated via talk pages, you can do so by inserting &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; following your message; while not required, it is an easy way to do so that is built into the Media Wiki software.  Thank you again for all of your contributions to the Gswiki.  Please let me know if you have any other questions. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:02, 23 May 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
Thank you for the signature tip, if I understand what you are saying the reason this article was changed but the other timeline is not in need of a change is because I marked it as player written and it has a forward that implies it is in character, if I remove that the tags can be reapplied? [[User:BURGHALGNOME|BURGHALGNOME]] ([[User talk:BURGHALGNOME|talk]]) 09:54, 23 May 2024 (CDT)&lt;br /&gt;
:You&#039;re welcome.  To answer your question, because you flagged the article as being a creative work, it is held to those specific standards ([[Gswiki:Style guide/Creative works]]) and is also not necessarily subject to other standards that apply to different types of articles.  If the timeline is instead a general article, then it is held to those other standards outlined in the [[Gswiki:Style guide]].  This means that it may be heavily edited by many other users and is subject to presenting information in a neutral/in-universe point of view.  If the creative-works template was added by mistake, then it is possible that some categories may be appropriate for adding back in if the template is removed.  It would also mean that I review the content for any additional style guide requirements and make those adjustments as needed.  For example, some of the character quotes may be removed entirely and some of the text changed to adhere to the style guide standards.  If you have further questions, you are welcome to reach out to me however you may not get a timely response, in which case I suggest asking the Wiki team on the Gemstone [https://discord.com/channels/226045346399256576/1061330227843833926 Discord forum&#039;s wiki thread]. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 10:11, 23 May 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
Thank you, I believe all the character quotes in the actual timeline are NPCs for the sake of context. I will discuss this with some other parties and decide on a direction. It may just make more sense to edit the other timeline with this information or to remove the template and leave it as is but that will depend on overall expectations. [[User:BURGHALGNOME|BURGHALGNOME]] ([[User talk:BURGHALGNOME|talk]]) 10:54, 23 May 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:LARSERBEAM|LARSERBEAM]] ([[User talk:LARSERBEAM|talk]]) 18:56, 9 September 2025 (CDT) Hello Kebechet!  I&#039;ve attempted to edit the talk page on for Peatwyn to help clarify.  Let me know if I can continue to elucidate or if I made an error in formatiting.  I&#039;m still learning a lot!&lt;br /&gt;
&lt;br /&gt;
== Elanthian Journals ==&lt;br /&gt;
&lt;br /&gt;
By chance are you able to see the old Elanthian Journal pages that were deleted? I just realized.. one thing I never did is check each one to see what linked to them. I just found a page that linked to a Journal :| [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 16:52, 12 August 2022 (CDT)&lt;br /&gt;
:Unfortunately, no.  Once a page is deleted, it is gone-gone.  However, I was able to pull up a list of broken links and adjusted seven pages that appeared to reference the old Elanthian Journal pages.  That should hopefully have caught any others that were overlooked! [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:45, 16 August 2022 (CDT)&lt;br /&gt;
::Thank you for this! Sorry for the extra work. [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 15:44, 16 August 2022 (CDT)&lt;br /&gt;
:::Very welcome!  Thank you for bringing up the potential of broken links. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:14, 17 August 2022 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Merchants template ==&lt;br /&gt;
&lt;br /&gt;
I cobbled that template together in 2019, as a pet project, when things were a little more relaxed. So many people were &amp;quot;remember that one merchant? Where were they?? What did they look like??&amp;quot;, that it felt like a good addition. Anyway, it was a build based on a template someone else had done, as you&#039;ve likely read. I had planned on continuing work on it, then COVID hit and I turned into a homeschool teacher for two young teenagers. &lt;br /&gt;
&lt;br /&gt;
Venues: the primary reason I changed those venues was because it was putting so many merchants into categories that didn&#039;t exist, and may not have been the best one for them to go into &#039;&#039;at the time&#039;&#039;. By restricting category to &amp;quot;wandering&amp;quot; and others that already had a category made, it cut down on &amp;quot;red links&amp;quot;; &#039;&#039;&#039;wandering&#039;&#039;&#039; moved them into a common category and could be changed later. &#039;&#039;&#039;Generally speaking&#039;&#039;&#039;, if they had a mention in their blurb as to what venue they attended, I removed the category that was causing a red link, although any that did not were likely an oversight (the notable exception being Elsia - I forgot to research her item, &#039;&#039;&#039;Fancy Coats&#039;&#039;&#039;, so I could add the venue).  &lt;br /&gt;
&lt;br /&gt;
Towns: it was my intention to adapt the template to allow them to be placed into the category &#039;&#039;&#039;for that town&#039;&#039;&#039;. An example would be citizen-only merchants such as Duvernith or Davro. I admittedly got wrapped up in EG item-adding and had not gotten back to fixing the &amp;quot;town&amp;quot; venue to populate into town pages instead of &#039;&#039;&#039;Town&#039;&#039;&#039; NPCs, a category that doesn&#039;t exist, so I just left town uncategorized for the time being. &lt;br /&gt;
&lt;br /&gt;
Many of those merchants I added myself with no real idea of what venues they had visited, in that hopes of at least having an appearance and a basic blurb to be expanded upon later. I had intended to continue with the work after EG and add category pages where appropriate. That section of the template might get pretty long for particularly industrious merchants! &#039;&#039;&#039;Wandering&#039;&#039;&#039; seemed like a good fit if they didn&#039;t have what might be considered a &amp;quot;primary festival&amp;quot; (for example, I wouldn&#039;t be surprised to see Elusionari in a lot of places!). &lt;br /&gt;
&lt;br /&gt;
That said, I get that once you add a template, you basically lose any claim to it being &amp;quot;yours&amp;quot;. However, no one else really took an interest in it, and I was told it would need work anyway, so I figured I was all right to try to adapt it to &#039;&#039;&#039;not&#039;&#039;&#039; use non-existent categories for the time being, since many (most?) of them had venue linked in the blurb or the body of the article. (TL:DR yet? LOL)[[User:ECHEAUX|ECHEAUX]] ([[User talk:ECHEAUX|talk]]) 12:09, 26 October 2022 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Table updates ==&lt;br /&gt;
&lt;br /&gt;
Hello! As I&#039;m sure you&#039;ve noticed, I&#039;ve been going through and updating older items to the newer templates. A lot of them are simple, but some of them require more time; much more time in some cases. For those, fortunately, a lot them are more or less copy and paste for the verb lists with a few minor tweaks. I noticed that on a couple of them you&#039;ve gone back and added in formatting for data tables for accessibility purposes. I read up on that today and I&#039;ll be sure to add that going forward, but I was wondering: Is there a way you are finding those that need it or are you just kind of seeing them as I&#039;m doing them? I&#039;d be more than happy to go back correct the formatting on those, but if there&#039;s a way I can find them more &amp;quot;wholesale&amp;quot; than &amp;quot;piecemeal&amp;quot;, that would make the job easier. [[User:ECHEAUX|ECHEAUX]] ([[User talk:ECHEAUX|talk]]) 17:40, 9 November 2022 (CST)&lt;br /&gt;
:Hi there!  Part of my duties as one of our wiki mods are to review recent page changes to ensure that they are appropriate to the wiki, are accurate, are appropriately named as a page or subpage, and that they generally comply with the wiki style guide.  So you&#039;ll see me doing things like updating pages to use new template standards, moving pages that aren&#039;t named properly, fixing redirects or broken links, updating categories, reviewing pages listed in [[:Category:Marked for Deletion]], and similar &amp;quot;moderator&amp;quot; type duties focused on overall wiki consistency that are not expected of general users who instead are adding new content to the wiki.  One of the standards set out by the style guide and the wiki team is to ensure that the wiki is as accessible as possible to everyone, including our users who rely on a screen reader.  If I run across any pages during my patrols that don&#039;t meet current standards, including tables that are not set up in a way for screen readers to properly capture, part of my job as a moderator is to update them accordingly.  Since you have been incredibly active on the wiki over the past couple of months, I am much more likely to review your edits than other users due to sheer volume; that&#039;s why it might look like I&#039;m going back to change pages you&#039;ve touched more so than other users.  Thanks for inquiring!  If you&#039;d like to know more about our moderator team or what our role is, I encourage you to ask on the Gemstone Discord&#039;s #wiki-talk channel where one of the GMs overseeing the wiki can chime in. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:11, 10 November 2022 (CST)&lt;br /&gt;
::Oh, I understand that. I just wasn&#039;t sure if there was an easy way to see pages with certain errors so I could fix those that I missed them on. I can go through my contribution list and do it, though. Thanks for getting back to me![[User:ECHEAUX|ECHEAUX]] ([[User talk:ECHEAUX|talk]]) 10:34, 10 November 2022 (CST)&lt;br /&gt;
&lt;br /&gt;
== Northern Sentinel&#039;s Decree==&lt;br /&gt;
&lt;br /&gt;
Hello! My intention with this page was to list only the legal characteristics of the Landing&#039;s protectorate status. I deliberately did not want to include the preamble and ending of the letter, as they did not carry legal weight. As such, I would like to revert it to a version which contains only those legal characteristics. In my view, a log page or official document page would be more appropriate for recording the entire letter. [[User:WBURKE1|WBURKE1]] ([[User talk:WBURKE1|talk]])&lt;br /&gt;
:Hi, WBURKE1.  Thanks for reaching out to me!  I am not ignoring your query; I am waiting on a response from the larger wiki team about how to approach this specific scenario with the article [[Northern Sentinel&#039;s Decree on the Imperial Protection of Wehnimer&#039;s Landing]].  As I explained to WINTERDAWN, generally speaking an article&#039;s Talk page is not an appropriate venue for archiving important information.  Given the nature of this specific article as well as the duplicate information between it and the article [[Protectorate]], I am waiting on confirmation on how best to handle it before taking any further action.  Unless another mod or GM weighs in before me, it will likely not be until next week that I can relay the final determination.  I appreciate your patience and understanding with this.  Thank you again for all of your contributions to the wiki. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:40, 9 February 2023 (CST)&lt;br /&gt;
::Hello again, WBURKE1.  After consulting with the wiki team, I have adjusted [[Northern Sentinel&#039;s Decree on the Imperial Protection of Wehnimer&#039;s Landing]] to show the previous version of the text instead of the log.  I have transcluded the identically presented information from [[Protectorate]] onto [[Northern Sentinel&#039;s Decree on the Imperial Protection of Wehnimer&#039;s Landing]].  I have updated text on the page to link to the log excerpt on [[Protectorate]] instead of referencing the article&#039;s talk page.  I have also updated the article&#039;s Talk page to remove the previously saved log excerpt, to clarify what its purpose is, and to direct anyone viewing it to [[Protectorate#5123]], which is where the complete log excerpt is located.  This should help ensure that the intent behind the original page, which is to succinctly state the terms of the Landing&#039;s Protectorate status, is maintained while still preserving information.  Thank you again for your patience as I worked to resolve this.  Please let me know if you have any further questions or concerns. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:13, 14 February 2023 (CST)&lt;br /&gt;
:::Thanks for this resolution and for all your hard work! [[User:WBURKE1|WBURKE1]] ([[User talk:WBURKE1|talk]]) 12:39, 14 February 2023 (CST)&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
&lt;br /&gt;
They&#039;re different images, please look more closely.&lt;br /&gt;
&lt;br /&gt;
== I don&#039;t know what I&#039;m doing! ==&lt;br /&gt;
&lt;br /&gt;
Hi, I tried to DM, failed! But found.. this space. And I have no idea if I&#039;m doing it correctly. I READ WHAT YOU WROTE and thank you for what was pointed out I will work on figuring out how to fix it, it just might not be instantly remedied (not too long, just not a finger-snap of time, I&#039;m still figuring stuff out!) -DASLOONIX&lt;br /&gt;
&lt;br /&gt;
== 5mb File Size Down to 2mb ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m noticing that the wiki now has a 2mb file size limit when it used to be 5mb. Is this an unintended result of the recent update or is it intentional? I&#039;m trying to update my OSA maps but the 2mb limit is going to cause a huge loss in quality on them. Thoughts? If it&#039;s intentional, perhaps you or an admin could override the setting and post the two maps for me? [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 19:56, 7 January 2024 (CST)&lt;br /&gt;
:I do not know about any details related to maximum file size changes.  I have relayed your question to the wiki team and will respond on your user talk page when I have more information.  While you are welcome to reach out to me (or other mods) with questions like this, you can also ask them on the [https://discord.com/channels/226045346399256576/1061330227843833926 Discord forum&#039;s wiki thread], where you may receive a faster response. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:08, 9 January 2024 (CST)&lt;br /&gt;
::Just checking in :) [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 23:41, 15 January 2024 (CST)&lt;br /&gt;
:::Hi, again!  I did inquire but still have no update.  The wiki team is relaying your question to onside/IT alongside several other extensions and related requests.  As a result, this will take much more time to answer than most questions due to it being outside the scope of what the wiki team can address. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:01, 16 January 2024 (CST)&lt;br /&gt;
::::Okay, thank you! In the meantime, is this something you or an admin have the power to override for the 2 map files? [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 18:28, 16 January 2024 (CST)&lt;br /&gt;
:::::No, this is outside the purview of what the wiki team is able to do. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:27, 17 January 2024 (CST)&lt;br /&gt;
::::::Okay, thank you! [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 21:24, 18 January 2024 (CST)&lt;br /&gt;
&lt;br /&gt;
Tossing this here since it&#039;s the primary reason for my design choice. Regarding my 3 OSA maps... I&#039;m worried that having thumbnails of the moderate/basic versions will &amp;quot;drown out&amp;quot; the link to the full version and give impression that the moderate version is the best quality version. Thoughts? At the end of the day I&#039;m fine with your final decision. [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 12:14, 25 May 2025 (CDT)&lt;br /&gt;
:Hi there!  I completely understand.  I had updated all the wiki-hosted maps to thumbnails to be consistent across the board, which largely impacted your two maps.  It would be better to maintain consistency wherever possible.  I have added a bolded statement next to your external link to emphasize it is a much higher resolution version of the first (parchment-backed) map.  Hopefully that will alleviate your concerns. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:26, 27 May 2025 (CDT)&lt;br /&gt;
::I agree about consistency! Your finding an alternate way to emphasize the full map gave me inspiration to play around with it more. Please let me know what you think about my changes. I basically uploaded a thumbnail image which is linking to the Google Drive image. I also re-wrote the alt text a bit to expand upon it. Lastly, if you feel it&#039;s worth it, can you delete this file? [[:File:Open Sea Adventures.jpg]] Unless the file size limitation changes, this file is unlikely to be used again. Thank you for all that you do! [[User:WINTERDAWN|WINTERDAWN]] ([[User talk:WINTERDAWN|talk]]) 15:24, 28 May 2025 (CDT)&lt;br /&gt;
:::I think your updates look great!  Thanks for being so flexible with things.  I realize that this new file size restriction does make things challenging when trying to share detailed map files.  I have also deleted [[:File:Open Sea Adventures.jpg]] per your request.  In the future, you can signal to me or any other moderator that you would like one of your files (or articles) deleted by inserting &amp;lt;nowiki&amp;gt;{{delete}}&amp;lt;/nowiki&amp;gt; as part of the file description, plus add a statement why (or just repeating the request) on the file&#039;s talk/discussion tab.  This will automatically assign it to [[:Category:Marked for Deletion]] so that when we patrol that category, we can easily identify the request.  Thanks for all of your contributions! [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:06, 29 May 2025 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Tatterclaws&#039; Guides ==&lt;br /&gt;
&lt;br /&gt;
Hello, I received your message, went through all four articles, and I believe fixed everything. The only thing I haven&#039;t fixed is moving the articles to Lich:. Can you please assist with that? Outside of that, everything should be updated. Thanks for your help.&lt;br /&gt;
&lt;br /&gt;
== Mana-Infused Armor ==&lt;br /&gt;
&lt;br /&gt;
Template:Itemtier - Optional template for single item pages with spots for Tier (or tree).&lt;br /&gt;
&lt;br /&gt;
I removed the OPTIONAL templates per the Gswiki:Style_guide/Item_scripts page.&lt;br /&gt;
&lt;br /&gt;
Please leave the detailed table, with concise information that doesn&#039;t require scrolling down forever to see the important information.&lt;br /&gt;
:I have responded on your user talk page.  In the future, if you need to add a &amp;quot;signature&amp;quot; to a comment made to another user, you can do so with &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;, which will automatically replace the four characters with your username and a date/timestamp.  You can see what this looks like at the end of my comment here. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:20, 8 October 2024 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Voln for Dummies==&lt;br /&gt;
Hello! I have added a copyright blurb to the top of the page under the spoiler banner (lmk if it should go above it). I reached out to the content creator before publishing the page and I still have the email where they asked to please use any of their material. If you would like me to forward that email to you, please let me know! [[User:KVOTHETBL|KVOTHETBL]] ([[User talk:KVOTHETBL|talk]])&lt;br /&gt;
:Hi again, KVOTHETBL.  Thank you for clarifying with your comment and a header that the [[Voln For Dummies]] guide article received permission from its authors to include it on the Gswiki.  Unfortunately, you did not place the statement that permission was given from the authors in the correct place.  As I said in my original communication, you need to clearly state that permission was given by the authors to include the guide on Gswiki on the Voln for Dummie&#039;s [[Talk:Voln For Dummies|talk page]].  This statement can be as simple as, &amp;quot;I have permission from the author to post this guide on the Gswiki. &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;quot; (with &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; serving as your &amp;quot;signature&amp;quot; for the comment).  Any additional remarks about permissions on the article itself are optional.  I am updating the &amp;lt;nowiki&amp;gt;{{moddelete}}&amp;lt;/nowiki&amp;gt; template with today&#039;s date, resetting the 7 day window.  Please let me know if you need further clarification on how to do this. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:19, 10 December 2024 (CST)&lt;br /&gt;
::As a follow up, I noticed that you used the code from an older template on the top of your article for the optional statement.  After consulting with the Wiki Team, I have updated that template to now be [[Template:Copyright-statement]], along with instructions on how to use it.  If you would like to use it in addition to the needed statement on the Voln For Dummies talk page, you are welcome to do so.  Thank you for bringing this older template to my attention so that it can be repurposed for future use. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 09:46, 10 December 2024 (CST)&lt;br /&gt;
:::Apologies! I misread your first communication and thought the notice could go in either place - I have updated the talk page. Please let me know if there are any further issues and thanks for your patience!&lt;br /&gt;
::::Thank you very much for taking those steps!  Everything looks great on my end now.  I have removed the mod-delete template and also updated the copyright-statement and player-guide templates for you. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:23, 11 December 2024 (CST)&lt;br /&gt;
&lt;br /&gt;
==Valence Armament==&lt;br /&gt;
&lt;br /&gt;
Hello Kebechet:&lt;br /&gt;
&lt;br /&gt;
Your edit message is wholly incorrect. None of the information I added to the valence armament page is available on the individual pages. There are four different valence weapon scripts; only two are documented on the wiki. The Valence Weapon page describes only the blade script, while the Valence Weapon runestaff describes the runestaff script. The blunt script and ranged script are not documented anywhere on the wiki, which is why I put the information on that page for reference.&lt;br /&gt;
&lt;br /&gt;
It would be very helpful for a Valence Weapon blunt and Valence weapon ranged script to be created using that information as reference, but I don&#039;t plan on doing it (I already made the runestaff page), and it can&#039;t be done if the information is removed from the wiki.&lt;br /&gt;
&lt;br /&gt;
These weapons are very poorly documented on the wiki and have been very poorly documented for a long time. Having some information present is better than having no information, which is why I added the information you have removed. I advise you to restore it.&lt;br /&gt;
[[User:WBURKE1|WBURKE1]] ([[User talk:WBURKE1|talk]])&lt;br /&gt;
:Hi there, WBURKE1.  I apologize for my mistake.  You are absolutely right.  I have gone ahead and created new articles for the additional [[Valence Weapon blunt|blunt]] and [[Valence Weapon ranged|ranged]] versions of the Valence set with the information that you had provided.  I was able to verify a bit more about their properties in the saved posts and have included that with them.  I also updated the other Valence gear articles accordingly.  All new articles are missing verb messaging information, but at least the mechanical information is now present.  Thank you very much for pointing that out! [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 10:15, 7 August 2025 (CDT)&lt;br /&gt;
:Hello Kebechet:&lt;br /&gt;
&lt;br /&gt;
Thank you! I appreciate you going the extra mile and adding the new pages with the information. I apologize for my intemperate response and I very much appreciate all the work you do to keep the wiki up to scratch. [[User:WBURKE1|WBURKE1]] ([[User talk:WBURKE1|talk]])&lt;br /&gt;
&lt;br /&gt;
==Images==&lt;br /&gt;
Hi. I have several images on the wiki that I had uploaded when it was still Krakiipedia. When it got imported, GM Keios was apparently involved in moving images as part of the import, which caused them all to now be attributed to her as the uploader. In all cases, I am either the artist (5 images) or the person who commissioned the artist (1 image). I am re-uploaded them under a different filename so they are properly attributed to my account. Can you please delete the following duplicate images that GM Keios uploaded? I think these are all of them but it is possible that there might be more floating somewhere out there, in which case I&#039;ll request a second round of this. Thanks. [[User:HATESHI|HATESHI]] ([[User talk:HATESHI|talk]]) 12:04, 17 August 2025 (CDT)&lt;br /&gt;
*[[:File:Kiss of Betrayal by ek.jpg]] - My painting.&lt;br /&gt;
*[[:File:Griffin Sword Saga by ek.jpg]] - My painting.&lt;br /&gt;
*[[:File:Harith by ek.jpg]] - My illustration.&lt;br /&gt;
*[[:File:Night Haven by ek.jpg]] - My illustration.&lt;br /&gt;
*[[:File:Alisaire by ek.jpg]] - My sketch&lt;br /&gt;
*[[:File:Alisaire by C.Lijewski.jpg]] - My paid commission from an artist.&lt;br /&gt;
&lt;br /&gt;
==Announcement Edits Clarification==&lt;br /&gt;
&lt;br /&gt;
Hi Kebechet, and thanks for the clarification. That was my mistake, and I appreciate you pointing me toward the policy. I&#039;d only intended to correct the typo/formatting, but completely understand the restriction on Announcement edits going forward. I&#039;ll make sure to use the talk page in the future if I notice anything that needs attention. Thanks again for the heads-up and take care! [[User:TRIEX|TRIEX]] ([[User talk:TRIEX|talk]]) 22:45, 26 May 2026 (CDT)&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Announcement:_Spell_Disabler_Review_Live!&amp;diff=257859</id>
		<title>Announcement: Spell Disabler Review Live!</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Announcement:_Spell_Disabler_Review_Live!&amp;diff=257859"/>
		<updated>2026-05-22T06:12:24Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: /* tldr */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Announcement&lt;br /&gt;
|category=Development&lt;br /&gt;
|subject=Disabler Review Live!&lt;br /&gt;
|author=GS4-ESTILD&lt;br /&gt;
|date=2023-12-31&lt;br /&gt;
}}&lt;br /&gt;
Starting today, we&#039;ll be releasing a number of updates for spells that disable or debuff targets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Goals:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Improve spell disablers so that magic has options available to set up and disable creatures.&lt;br /&gt;
* Improve support builds for grouping by allowing experience for contributions in a standardized way.&lt;br /&gt;
* Standardize effects and effect durations so combat flows more naturally and players aren’t forced to &amp;quot;take a timeout&amp;quot; for several minutes.&lt;br /&gt;
* Improve Survival training by adding more utility.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General Updates:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Most spells that disable or debuff a single target will have a 2 second cast roundtime and a mana cost in the 1-5 range. AoE versions will remain at 3 seconds of cast roundtime, but most mana cost will be lowered to the 5-10 range.&lt;br /&gt;
* Self-cast spells no longer force a TD reduction on the caster. This already applies for newer spells but some older ones still have this mechanic.&lt;br /&gt;
* A few spells will not require a skill check and have automatic success unless the target is more than 10 levels above the attacker. Ascension creatures targets can go up to level 20 higher, but there&#039;s a 10% chance of failure for each level past 10. Subsequent attempts against the same Ascension target increases the odds of success by 20% for each attempt. e.g. the first attempt might have a 60% chance of failure, but the second attempt only has a 40%, the third a 20%, etc.&lt;br /&gt;
* Some abilities will be updated to use the Standard Maneuver Roll (SMR).All abilities which induce roundtime will use Stagger (cannot stack, but can refresh).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Durations:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* All negative effects will be normalized around a 30 second maximum duration. This mainly pertains to actual spells, but we&#039;ll also try to update creature abilities in the future too.&lt;br /&gt;
* Base and minimum duration of 10 seconds.&lt;br /&gt;
* Maximum duration of 30 seconds against characters and 60 seconds against creatures.&lt;br /&gt;
* Warding and SMR spells/abilities will use (10 + ((end result - 100) / 5) * (1 against characters or 2 against creatures)) to determine the duration.  e.g. a 140 end result would be (10 + (140 - 100) / 5)) = 18 seconds against a character and 36 seconds against a creature.&lt;br /&gt;
* Training in Survival reduces the duration by the following:&lt;br /&gt;
* Ranks 1-100: 1% per 5 ranks, up to 20%&lt;br /&gt;
* Ranks 101+: 1% per 20 ranks, up to 10%&lt;br /&gt;
* Kroderine Soul reduces the duration of magical effects by 25% and stacks (additively) with the Survival bonus.&lt;br /&gt;
&lt;br /&gt;
The following spells updates are live.  Additional updates are pending, especially for spells that have single target and AoE versions, as updating their cast roundtime or mana costs involves additional complexity.  Those will be announced once released.  The entire Development team has worked through design, coding, and QC to make this update possible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stun Relief (108):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unbalance (110):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
* Additional updates are pending.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Web (118):&#039;&#039;&#039;&lt;br /&gt;
* Single target and room versions have moved from warding to the SMR.&lt;br /&gt;
* Reduced SMR single target castRT to 2.&lt;br /&gt;
* Reduced SMR single target mana cost to 5.&lt;br /&gt;
* Reduced AoE version mana cost to 10.  &lt;br /&gt;
* CastRT remains at 3.&lt;br /&gt;
* CastRT and mana cost of the bolt version remain unchanged.&lt;br /&gt;
* Uses new standard negative duration formula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spirit Dispel (119):&#039;&#039;&#039; &lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced base mana cost to 5.&lt;br /&gt;
* When dispelling a spell, the mana cost is 1 mana for every 4 levels of the target spell, and +2 mana when the dispel doesn&#039;t match the sphere of the target spell.  &lt;br /&gt;
* Every 75 skill in Mana Control (that matches the dispel type) reduces the mana cost by 1. &lt;br /&gt;
* Minimum of 1 mana and maximum of 5 mana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Searing Light (135):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 7.&lt;br /&gt;
* Uses new standard negative duration formula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Calm (201):&#039;&#039;&#039;&lt;br /&gt;
* Reduced CastRT to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interference (212):&#039;&#039;&#039;&lt;br /&gt;
* Updated to be auto-success.&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bind (214):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Frenzy (216):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mass Interference (217):&#039;&#039;&#039;&lt;br /&gt;
* Updated to be auto-success. &lt;br /&gt;
* Reduced mana cost to 5. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spiritual Abolition (230):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For each spell dispelled, the mana cost is 1 mana for every 4 levels of the target spell, and +2 mana when the dispel doesn&#039;t match the sphere of the target spell.&lt;br /&gt;
* Every 75 skill in Mana Control (that matches the dispel type) reduces the mana cost by 1. &lt;br /&gt;
* Minimum of 1 mana and maximum of 5 mana. &lt;br /&gt;
* The overall minimum is 10 mana and the overall maximum is 20 mana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blind (311):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 3.&lt;br /&gt;
* Uses new standard negative duration formula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Censure (316):&#039;&#039;&#039;&lt;br /&gt;
* Reduce mana cost to 10.&lt;br /&gt;
* Uses new standard negative duration formula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weapon Deflection (412):&#039;&#039;&#039;&lt;br /&gt;
* Updated to new auto-success level check.&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduce mana cost to 2.&lt;br /&gt;
* Uses new standard negative duration formula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Elemental Saturation (413):&#039;&#039;&#039;&lt;br /&gt;
* Updated to be auto-success.&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Elemental Dispel (417):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced base mana cost to 5.&lt;br /&gt;
* When dispelling a spell, the mana cost is 1 mana for every 4 levels of the target spell, and +2 mana when the dispel doesn&#039;t match the sphere of the target spell.  &lt;br /&gt;
* Every 75 skill in Mana Control (that matches the dispel type) reduces the mana cost by 1. &lt;br /&gt;
* Minimum of 1 mana and maximum of 5 mana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cold Snap (512):&#039;&#039;&#039; &lt;br /&gt;
* Reduced mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Immolate (519):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced base mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Elemental Disjunction (530):&#039;&#039;&#039;&lt;br /&gt;
* For each spell dispelled, the mana cost is 1 mana for every 4 levels of the target spell, and +2 mana when the dispel doesn&#039;t match the sphere of the target spell.  &lt;br /&gt;
* Every 75 skill in Mana Control (that matches the dispel type) reduces the mana cost by 1. &lt;br /&gt;
* Minimum of 1 mana and maximum of 5 mana. &lt;br /&gt;
* The overall minimum is 10 mana and the overall maximum is 20 mana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sounds (607):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tangleweed (610):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moonbeam (611):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Call Swarm (615):&#039;&#039;&#039; &lt;br /&gt;
* Reduce castRT to 2.&lt;br /&gt;
* Reduce mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mass Calm (619):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Corrupt Essence (703):&#039;&#039;&#039;&lt;br /&gt;
* Single Target reduced castRT to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mind Jolt (706):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2. &lt;br /&gt;
* Reduced mana cost to 4.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lullabye (1005):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stunning Shout (1008):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Song of Depression (1015):&#039;&#039;&#039; &lt;br /&gt;
* Reduced initial mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Song of Rage (1016):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced initial mana cost to 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Song of Noise (1017):&#039;&#039;&#039;&lt;br /&gt;
* Reduced initial mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Empathy (1108):&#039;&#039;&#039; &lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sympathy (1120):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Powersink (1203):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Force Projection (1207):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thought Lash (1210):&#039;&#039;&#039; &lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Confusion (1211):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mental Dispel (1218):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced base mana cost to 5.&lt;br /&gt;
* When dispelling a spell, the mana cost is 1 mana for every 4 levels of the target spell, and +2 mana when the dispel doesn&#039;t match the sphere of the target spell.  &lt;br /&gt;
* Every 75 skill in Mana Control (that matches the dispel type) reduces the mana cost by 1. &lt;br /&gt;
* Minimum of 1 mana and maximum of 5 mana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vertigo (1219):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aura of the Arkati (1614):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Impedance (1708):&#039;&#039;&#039;&lt;br /&gt;
* Reduced castRT to 2.&lt;br /&gt;
* Reduced mana cost to 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quake (1714):&#039;&#039;&#039;&lt;br /&gt;
* Reduced mana cost to 5.&lt;br /&gt;
{{DEFAULTSORT:Spell Disabler Review Live!}}&lt;br /&gt;
===tldr===&lt;br /&gt;
Starting on 12/31/2023, the Development Team made numerous updates for spells that disable or debuff targets.&lt;br /&gt;
&lt;br /&gt;
The initial information was shared on Discord, however, the details can be found both here and on the main page of play.net.&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Chrism&amp;diff=257779</id>
		<title>Chrism</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Chrism&amp;diff=257779"/>
		<updated>2026-05-17T02:10:52Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Removing typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Chrism&#039;&#039;&#039; gem is the Fourth Tier of the [[Holy Receptacle (325)]] spell, and allows a [[cleric]] to help an individual find greater peace, whether to aid them in recuperation following death (removing some amount of [[Death&#039;s Sting]] based on the strength of the chrism gem and speeding the return of [[health]], [[mana]], and [[spirit]]) or for a troubled soul in general (allows a character of any [[profession]] to [[MEDITATE|meditate]] as a cleric, [[empath]], or [[savant]]).  Highly sought after invasions, chrism gems are often considered to represent the pinnacle of a cleric&#039;s lore training.&lt;br /&gt;
{{TOC limit|2}}&lt;br /&gt;
== Requirements ==&lt;br /&gt;
To create a chrism gem, a cleric must have:&lt;br /&gt;
*An [[orb gem]] with a value &amp;gt; 3000 silver&lt;br /&gt;
*25 + X mana: 25 for the spell, X being a variable cost (presumably based on value and lore)&lt;br /&gt;
*[[Spiritual Lore, Blessings]]: 10 ranks (50 skill)&lt;br /&gt;
*[[Spiritual Lore, Summoning]]: 15 ranks (70 skill)&lt;br /&gt;
*[[Spiritual Lore, Religion]]: 25 ranks (105 skill)&lt;br /&gt;
&lt;br /&gt;
Chrism gems can only be used by clerics, but may be used by any cleric of at least level 18 with knowledge of the [[Raise Dead (318)]] spell once created.  [[F2P]] characters must have an active [[Simucoin#F2P_Subscription_Items|Resurrection Pass]] to use them successfully on corpses.&lt;br /&gt;
&lt;br /&gt;
==Lore Benefits==&lt;br /&gt;
Benefits to chrisms are derived off of ranks of [[Spiritual Lore, Blessings]]:&lt;br /&gt;
&lt;br /&gt;
:{| {{prettytable}} &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
!align=&amp;quot;right&amp;quot;|Spiritual Lore, Blessings ranks||11||13||16||20||25||31||38||46||55||65&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|Experience retained||55%||60%||65%||70%||75%||80%||85%||90%||95%||100%&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|Gem appearance||half full||more than half full||more than half full||more than half full||three quarters full||three quarters full||almost full||almost full||almost full||full&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Due to skill training level limitations, the earliest a cleric can create a 100% experience chrism would be level 51 without [[enhancive item]]s, as the lore training requirements would be 105 ranks total (15 Summoning + 25 Religion + 65 Blessing).&lt;br /&gt;
&lt;br /&gt;
== Creation ==&lt;br /&gt;
First you must prep and cast [[Holy Receptacle (325)]] at the gem, then:&lt;br /&gt;
;Syntax - &amp;lt;span style=&amp;quot;font-variant:small-caps&amp;quot;&amp;gt;bless deity common 4 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&amp;gt;bless deity common 4&lt;br /&gt;
You chant a quick prayer and the golden moonstone&#039;s outer shell becomes translucent and brittle.  A  cobalt liquid fills the once solid interior of the golden moonstone.&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Failure&lt;br /&gt;
A critical failure is possible, resulting in the destruction of the gem.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&amp;gt;bless deity common 4&lt;br /&gt;
You chant a quick prayer and the diamond becomes entirely too brittle in your hand, cracks, and blows away in the form of a fine powder.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After the Chrism gem has been prepared, {{boldmono|[[LOOK (verb)|LOOKing]]}} at it will reveal the strength of the chrism gem.  &lt;br /&gt;
&lt;br /&gt;
;Syntax - &amp;lt;span style=&amp;quot;font-variant:small-caps&amp;quot;&amp;gt;look (gem)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&amp;gt;look moonstone&lt;br /&gt;
The now translucent outer shell of the &#039;&#039;full&#039;&#039; golden moonstone allows you to see the &#039;&#039;ordinary&#039;&#039;, cobalt liquid undulating.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Full&amp;quot; denotes a 100% experience chrism (see Lore Benefits above), and &amp;quot;ordinary&amp;quot; denotes a chrism of the second tier of strength (see below) with regards to recovery time after death.&lt;br /&gt;
&lt;br /&gt;
==Strengths==&lt;br /&gt;
Depending upon value of the gem used, chrism gems have different effects on minimizing the effects of Death&#039;s Sting.  These levels determine how much statistic recovery weakness will be mitigated when used on a corpse.  There is no cap on the value of the gem used. {{boldmono|LOOK}} at the chrism to see its strength, noted by the words &amp;quot;dull&amp;quot;, &amp;quot;ordinary&amp;quot;, &amp;quot;bright&amp;quot;, &amp;quot;vibrant&amp;quot;, or &amp;quot;glowing&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Strength||[[Death&#039;s Sting]]&amp;lt;br&amp;gt;Initial Stat Loss||[[Death&#039;s Sting]]&amp;lt;br&amp;gt;Recuperation Time&amp;lt;br&amp;gt;With Deeds||[[Death&#039;s Sting]]&amp;lt;br&amp;gt;Recuperation Time&amp;lt;br&amp;gt;Without Deeds||Gem Value&lt;br /&gt;
|-&lt;br /&gt;
|No Chrism||40%||10 mins||20 mins||N/A&lt;br /&gt;
|-&lt;br /&gt;
|Dull||27-30%||7-8 mins||14-15 mins||3,000-4,999&lt;br /&gt;
|-&lt;br /&gt;
|Ordinary||21-26%||6-7 mins||11-13 mins||5,000-7,999&lt;br /&gt;
|-&lt;br /&gt;
|Bright||11-20%||3-5 mins||6-10 mins||8,000-12,999&lt;br /&gt;
|-&lt;br /&gt;
|Vibrant||10% or less||3 mins or less||5 mins or less||13,000+&lt;br /&gt;
|-&lt;br /&gt;
|Glowing||estimated 0-5%||0-2 mins||0-3 mins||??&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: Stats recover at 4% (of total) per minute with a deed or 2% per minute if resurrected without a deed.&amp;lt;br&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;Note 2: Chrisms of the same &amp;quot;strength&amp;quot; can have different results based on the value of the gem (i.e. a dull chrism worth 3001 silvers causes 30% stat loss and a dull chrism worth 4999 silvers causes 27% stat loss.)&amp;lt;br&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;Note 3: Recovery times for vibrant and glowing are being investigated and may need to be updated. A vibrant chrism worth just over 13k caused an initial stat loss of 10%. Higher value vibrant and glowing gem data is missing from the above info.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Applying a chrism gem is a simple process.  If attempting to aid a corpse, simply {{boldmono|[[WAVE (verb)|WAVE]]}} the gem over them before casting [[Raise Dead (318)|Raise Dead]].  When using the gem upon a living character to aid them to a meditative state, one also {{boldmono|WAVE}}s the gem, but with no need to cast any spell.&lt;br /&gt;
&lt;br /&gt;
;Syntax - &amp;lt;span style=&amp;quot;font-variant:small-caps&amp;quot;&amp;gt;wave (gem) at (target)&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&amp;gt;wave sunstone at XXX&lt;br /&gt;
You gingerly crack and wave the red sunstone over XXX&#039;s body and a mixture of oil and balsam trickles out of the sunstone, coating XXX with a cobalt blue liquid.&lt;br /&gt;
The red sunstone deteriorates into a cobalt powder that disperses into the wind.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[/saved posts|Saved posts]]&lt;br /&gt;
* [[Chrism holder]]&lt;br /&gt;
* [[Chrismarium]]&lt;br /&gt;
* [[Chrism Censer]]&lt;br /&gt;
[[Category:Cleric Base Spells]]&lt;br /&gt;
[[Category:Cleric]]&lt;br /&gt;
[[Category: Experience]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Armor_Support&amp;diff=257770</id>
		<title>Armor Support</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Armor_Support&amp;diff=257770"/>
		<updated>2026-05-14T17:55:36Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Added link to Armor page in the Mechanics formula for quick lookup of Armor Group values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Player System Manager&lt;br /&gt;
|mnemonic= support&lt;br /&gt;
|verb = [[ARMOR]]&lt;br /&gt;
|type= Buff&lt;br /&gt;
|roundtime= 5s&lt;br /&gt;
|availableto= [[Warrior]]s, [[Rogue]]s, [[Paladin]]s&lt;br /&gt;
|availablein= Armor Specializations&lt;br /&gt;
}}&lt;br /&gt;
{{PSM3.0costs&lt;br /&gt;
|rank1 = 10&lt;br /&gt;
|rank2 = 15&lt;br /&gt;
|rank3 = 20&lt;br /&gt;
|rank4 = 25&lt;br /&gt;
|rank5 = 30&lt;br /&gt;
}}&lt;br /&gt;
{{PSMinfo&lt;br /&gt;
  |description = Adjusts a person&#039;s armor so that it better supports the weight of their gear.&lt;br /&gt;
  |mechanics = Reduces encumbrance by a number of pounds equal to {{mono|5 + (([[Armor|Armor Group]] + 1) * Rank)}}.&lt;br /&gt;
  |additionalinfo = The maximum amount of pounds that could be reduced would be 35 from adjusting plate armor.&lt;br /&gt;
&lt;br /&gt;
===Messaging===&lt;br /&gt;
;Application of the specialization:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;armor support ayas&lt;br /&gt;
You adjust your rolaren metal breastplate, improving its ability to support the weight of your gear.&lt;br /&gt;
Roundtime: 5 sec.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Claidhmore&amp;diff=257688</id>
		<title>Claidhmore</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Claidhmore&amp;diff=257688"/>
		<updated>2026-05-08T03:36:49Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Removed dead link to Ulaahn&amp;#039;s Claidhmore Emporium on charter.net (404 error)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Claidhmore.jpg|thumb|A claidhmore.|alt=Illustration of a claidhmore, or claymore, a large two-handed sword.]]&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
A [[claidhmore]] is an especially massive variant of the two-handed sword. Its enormous bulk provides 40 points of natural [[critical weighting]] to the weapon, making the claidhmore the weapon of choice of many adventurers.&lt;br /&gt;
&lt;br /&gt;
[[Two-Handed Weapons]] are weapons which require both hands to grasp, thus can not be used with a shield.  The weapons which belong to this group resemble weapons from many of the other groups. However, there is a distinct difference in the sheer size and weight of these weapons. In general, two-handed weapons hit a great deal harder and do more damage than one-handed weapons.  The trade-off is less defense offered by a [[Shield|shield]]. &lt;br /&gt;
&lt;br /&gt;
==Alternate Names==&lt;br /&gt;
&lt;br /&gt;
*None&lt;br /&gt;
&lt;br /&gt;
==Game Mechanics==&lt;br /&gt;
Claidhmores are on the high end of the damaging weapons in the [[Two-Handed Weapons]] skill.  In addition, they have the potential to cause a substantial amount of critical damage to those who are on the receiving end of the weapon.&lt;br /&gt;
{{Weapon table start}}&lt;br /&gt;
{{Weapon table claidhmore}}&lt;br /&gt;
{{Weapon table claidhmore 2}}&lt;br /&gt;
{{Weapon table end}}&lt;br /&gt;
&lt;br /&gt;
Standard claidhmores have a weapon weight of 12 lbs.&lt;br /&gt;
&lt;br /&gt;
The [[:Category:Damage Types|critical damage]] ratio is approximately 60% [[slash critical table|slash]] to 40% [[crush critical table|crush]].&lt;br /&gt;
&lt;br /&gt;
Note: To edit these tables go to [[Template:Weapon table claidhmore]] (new style) [[Template:Weapon table claidhmore 2]]  (old style)&lt;br /&gt;
&lt;br /&gt;
==Old Style vs. New Style==&lt;br /&gt;
&lt;br /&gt;
The main differences between old-style and new-style claidhmores are that old-style has a -10 [[Attack strength|AS]] (thus a [[ICE age#SHIFT METALS|laen]] claidhmore would be 3x - 2x = 1x or +5 AS) and a +10 AvD (versus new-style.)  These factors essentially even out.  Additionally, new-style claidhmores lend a higher [[DS]] to many stances, but have a lower damage factor against some armor.&lt;br /&gt;
&lt;br /&gt;
Inspecting a new-style claidhmore:&lt;br /&gt;
&amp;lt;div {{Log}}&amp;gt;&lt;br /&gt;
After a careful inspection you determine that a dark claidhmore requires skill in twohanded weapons to use effectively.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspecting an old-style claidhmore:&lt;br /&gt;
&amp;lt;div {{Log}}&amp;gt;&lt;br /&gt;
After a careful inspection you determine that a laen claidhmore requires skill in twohanded weapons to use effectively.  It appears to be a modified twohanded sword.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
*[[Two-Handed Weapons]] - This skill is required to wield a claidhmore.&lt;br /&gt;
*[[Legendary claidhmores]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Weapons]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Perception&amp;diff=257401</id>
		<title>Perception</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Perception&amp;diff=257401"/>
		<updated>2026-05-02T22:15:29Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Link is no longer valid&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Perception]] represents a character&#039;s ability to perceive the world in minute detail and is one of the most broadly useful skills in Elanthia.&lt;br /&gt;
&lt;br /&gt;
Perception factors into a myriad of diverse skill checks:&lt;br /&gt;
*It is an important factor in [[Creature maneuver]] defense.&lt;br /&gt;
*It is the only component for many [[SEARCH (verb)|searching]] activities required for travelling and hunting, which can be considered as fundamental as basic requirements like [[climbing]] and [[swimming]].&lt;br /&gt;
*Searching skill is also required for some bounties assigned by the [[Adventurer&#039;s Guild]] for heirlooms.&lt;br /&gt;
*It&#039;s the only way to improve one&#039;s chances to counteract [[Stalking and Hiding]] skills, including noticing [[rangers]] [[617|sneaking]].&lt;br /&gt;
*Every 15 skill gives +1 bonus to [[foraging]] herbs.&lt;br /&gt;
*It factors into [[Ranged Weapons]] [[attack strength]] and the chance to hit an aimed target with a ranged weapon.&lt;br /&gt;
*It helps find traps laid by [[Bandit|bandits]].&lt;br /&gt;
*Anyone [[popping boxes]] or [[trap|disarming traps]] will have plenty of use for the skill.&lt;br /&gt;
*Even [[illusions]] of the [[Sorcerer Guild]] are much simpler to create with better skill in perception.&lt;br /&gt;
*A factor in searching [[magru]], [[minor glacei]], and [[major glacei]], and also accessing the [[Red Forest]].&lt;br /&gt;
*Perception is an important component to observe or protect against the rare [[pickpocketing]].&lt;br /&gt;
*The crit weighting from a hidden and [[ambush|ambushing]] enemy can be reduced by training in perception (and ambush).&lt;br /&gt;
&lt;br /&gt;
All told, any character can gain a very reasonable benefit by training this skill, and many recommend at least 1x training through cap.&lt;br /&gt;
&lt;br /&gt;
== Ranks and Training Costs ==&lt;br /&gt;
{{skill|&lt;br /&gt;
  | Bardranks     = 2 || Bardcost     = 0/3&lt;br /&gt;
  | Clericranks   = 2 || Clericcost   = 0/3&lt;br /&gt;
  | Empathranks   = 2 || Empathcost   = 0/3&lt;br /&gt;
  | Monkranks     = 2 || Monkcost     = 0/2&lt;br /&gt;
  | Paladinranks  = 2 || Paladincost  = 0/3&lt;br /&gt;
  | Rangerranks   = 2 || Rangercost   = 0/2&lt;br /&gt;
  | Rogueranks    = 3 || Roguecost    = 0/1&lt;br /&gt;
  | Sorcererranks = 2 || Sorcerercost = 0/3&lt;br /&gt;
  | Warriorranks  = 2 || Warriorcost  = 0/3&lt;br /&gt;
  | Wizardranks   = 2 || Wizardcost   = 0/3&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Perception&amp;diff=257398</id>
		<title>Perception</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Perception&amp;diff=257398"/>
		<updated>2026-05-02T22:08:00Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Undo revision 257397 by TRIEX (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Perception]] represents a character&#039;s ability to perceive the world in minute detail and is one of the most broadly useful skills in Elanthia.&lt;br /&gt;
&lt;br /&gt;
Perception factors into a myriad of diverse skill checks:&lt;br /&gt;
*It is an important factor in [[Creature maneuver]] defense.&lt;br /&gt;
*It is the only component for many [[SEARCH (verb)|searching]] activities required for travelling and hunting, which can be considered as fundamental as basic requirements like [[climbing]] and [[swimming]].&lt;br /&gt;
*Searching skill is also required for some bounties assigned by the [[Adventurer&#039;s Guild]] for heirlooms.&lt;br /&gt;
*It&#039;s the only way to improve one&#039;s chances to counteract [[Stalking and Hiding]] skills, including noticing [[rangers]] [[617|sneaking]].&lt;br /&gt;
*Every 15 skill gives +1 bonus to [[foraging]] herbs.&lt;br /&gt;
*It factors into [[Ranged Weapons]] [[attack strength]] and the chance to hit an aimed target with a ranged weapon.&lt;br /&gt;
*It helps find traps laid by [[Bandit|bandits]].&lt;br /&gt;
*Anyone [[popping boxes]] or [[trap|disarming traps]] will have plenty of use for the skill.&lt;br /&gt;
*Even [[illusions]] of the [[Sorcerer Guild]] are much simpler to create with better skill in perception.&lt;br /&gt;
*A factor in searching [[magru]], [[minor glacei]], and [[major glacei]], and also accessing the [[Red Forest]].&lt;br /&gt;
*Perception is an important component to observe or protect against the rare [[pickpocketing]].&lt;br /&gt;
*The crit weighting from a hidden and [[ambush|ambushing]] enemy can be reduced by training in perception (and ambush).&lt;br /&gt;
&lt;br /&gt;
All told, any character can gain a very reasonable benefit by training this skill, and many recommend at least 1x training through cap.&lt;br /&gt;
&lt;br /&gt;
== Ranks and Training Costs ==&lt;br /&gt;
{{skill|&lt;br /&gt;
  | Bardranks     = 2 || Bardcost     = 0/3&lt;br /&gt;
  | Clericranks   = 2 || Clericcost   = 0/3&lt;br /&gt;
  | Empathranks   = 2 || Empathcost   = 0/3&lt;br /&gt;
  | Monkranks     = 2 || Monkcost     = 0/2&lt;br /&gt;
  | Paladinranks  = 2 || Paladincost  = 0/3&lt;br /&gt;
  | Rangerranks   = 2 || Rangercost   = 0/2&lt;br /&gt;
  | Rogueranks    = 3 || Roguecost    = 0/1&lt;br /&gt;
  | Sorcererranks = 2 || Sorcerercost = 0/3&lt;br /&gt;
  | Warriorranks  = 2 || Warriorcost  = 0/3&lt;br /&gt;
  | Wizardranks   = 2 || Wizardcost   = 0/3&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
http://www.play.net/gs4/info/skills.asp&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Perception&amp;diff=257397</id>
		<title>Perception</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Perception&amp;diff=257397"/>
		<updated>2026-05-02T22:04:33Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Perception]] represents a character&#039;s ability to perceive the world in minute detail and is one of the most broadly useful skills in Elanthia.&lt;br /&gt;
&lt;br /&gt;
Perception factors into a myriad of diverse skill checks:&lt;br /&gt;
*It is an important factor in [[Creature maneuver]] defense.&lt;br /&gt;
*It is the only component for many [[SEARCH (verb)|searching]] activities required for travelling and hunting, which can be considered as fundamental as basic requirements like [[climbing]] and [[swimming]].&lt;br /&gt;
*Searching skill is also required for some bounties assigned by the [[Adventurer&#039;s Guild]] for heirlooms.&lt;br /&gt;
*It&#039;s the only way to improve one&#039;s chances to counteract [[Stalking and Hiding]] skills, including noticing [[rangers]] [[617|sneaking]].&lt;br /&gt;
*Every 15 skill gives +1 bonus to [[foraging]] herbs.&lt;br /&gt;
*It factors into [[Ranged Weapons]] [[attack strength]] and the chance to hit an aimed target with a ranged weapon.&lt;br /&gt;
*It helps find traps laid by [[Bandit|bandits]].&lt;br /&gt;
*Anyone [[popping boxes]] or [[trap|disarming traps]] will have plenty of use for the skill.&lt;br /&gt;
*Even [[illusions]] of the [[Sorcerer Guild]] are much simpler to create with better skill in perception.&lt;br /&gt;
*A factor in searching [[magru]], [[minor glacei]], and [[major glacei]], and also accessing the [[Red Forest]].&lt;br /&gt;
*Perception is an important component to observe or protect against the rare [[pickpocketing]].&lt;br /&gt;
*The crit weighting from a hidden and [[ambush|ambushing]] enemy can be reduced by training in perception (and ambush).&lt;br /&gt;
&lt;br /&gt;
All told, any character can gain a very reasonable benefit by training this skill, and many recommend at least 1x training through cap.&lt;br /&gt;
&lt;br /&gt;
== Ranks and Training Costs ==&lt;br /&gt;
{{skill|&lt;br /&gt;
  | Bardranks     = 2 || Bardcost     = 0/3&lt;br /&gt;
  | Clericranks   = 2 || Clericcost   = 0/3&lt;br /&gt;
  | Empathranks   = 2 || Empathcost   = 0/3&lt;br /&gt;
  | Monkranks     = 2 || Monkcost     = 0/2&lt;br /&gt;
  | Paladinranks  = 2 || Paladincost  = 0/3&lt;br /&gt;
  | Rangerranks   = 2 || Rangercost   = 0/2&lt;br /&gt;
  | Rogueranks    = 3 || Roguecost    = 0/1&lt;br /&gt;
  | Sorcererranks = 2 || Sorcerercost = 0/3&lt;br /&gt;
  | Warriorranks  = 2 || Warriorcost  = 0/3&lt;br /&gt;
  | Wizardranks   = 2 || Wizardcost   = 0/3&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=257048</id>
		<title>Gift of Lumnis</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=257048"/>
		<updated>2026-04-26T21:43:50Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Undo revision 257047 by TRIEX (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&amp;lt;section begin=Exp page /&amp;gt;&#039;&#039;&#039;Gift of Lumnis&#039;&#039;&#039; (commonly referred to as &amp;quot;Gift&amp;quot;, &amp;quot;Lumnis&amp;quot;, or &amp;quot;XXX&amp;quot;) multiplies [[field experience]] absorption, increasing the rate at which characters gain [[level]]s.  It was created to decrease the &amp;lt;noinclude&amp;gt;[[&amp;lt;/noinclude&amp;gt;experience&amp;lt;noinclude&amp;gt;]]&amp;lt;/noinclude&amp;gt; disparity between characters of players who can only play a short time each week, and those who can play more frequently.  &lt;br /&gt;
&lt;br /&gt;
The Gift of Lumnis occurs once per week for all characters on paid [[subscription]] accounts. ([[F2P]] accounts may purchase [[Gift of Lumnis token]]s to gain access.)&lt;br /&gt;
&lt;br /&gt;
The gift also serves as a weekly &#039;reset&#039;. For example, [[Verb:RESOURCE|Profession resources]] have a weekly cap, and this cap resets as your Lumnis starts.&lt;br /&gt;
&lt;br /&gt;
Lumnis boosts your experience gain in phases of 7,300 experience. All paid accounts get 2 phases standard (for a total of 21,900 bonus experience), and you may donate using &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; to get 4 phases instead (for a total of 73,000 bonus experience).&lt;br /&gt;
&lt;br /&gt;
Boosted lumnis will quintuple the first 7300 experience you absorb, then quadruple the next 7300, then triple the next 7300, and finally double the next 7300.&lt;br /&gt;
&lt;br /&gt;
Basic lumnis only has the last 2 of those phases: The first 7300 experience absorbed is tripled, the next 7300 experience is doubled.&lt;br /&gt;
&lt;br /&gt;
To gain the boosted lumnis, use the &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; command. This cost 250,000 silvers (significantly less for character at level 20 or less), and upon donating, the next time your lumnis would start, you&#039;ll get the 4 (boosted) cycles. There is no way to retroactively gain the boosted cycles if your lumnis has already started. Level 21+ characters can donate more than once, but this merely pre-pays for future weeks, it does not grant additional cycles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=Exp page /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Boost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Temple Donation Maximum&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | No Donation Maximum&lt;br /&gt;
|-&lt;br /&gt;
| 5x || 29,200 || -&lt;br /&gt;
|-&lt;br /&gt;
| 4x || 21,900 || -&lt;br /&gt;
|-&lt;br /&gt;
| 3x || 14,600 || 14,600&lt;br /&gt;
|-&lt;br /&gt;
| 2x || 7,300 || 7,300&lt;br /&gt;
|-&lt;br /&gt;
| Total || 73,000 || 21,900&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Experience Absorption==&lt;br /&gt;
While under the effects of Lumnis, the amount of experience converted from the field experience pool to total experience is increased by a factor of 5/4/3/2, until the designated amount of bonus experience for that phase has been absorbed.  How much experience a character can hold in their &amp;quot;[[Experience#Size_of_Pool|unabsorbed experience pool]]&amp;quot; and how much is removed from this pool per experience pulse remain unchanged.  &lt;br /&gt;
&lt;br /&gt;
For example, a character with a 100 [[Discipline]] and a 100 [[Logic]] stat and no other experience pool bonuses that is completely fried (1000/1000 experience in the pool) and resting on a [[node]] with no other modifiers sees 33 experience points converted from the unabsorbed field experience pool in a normal pulse; however, while under the effects of a fresh, boosted  Gift of Lumnis, the character under the same conditions would instead see 165 experience added to their experience total, while still only 33 experience is subtracted from the unabsorbed field experience pool.  Thus, if this character rested on a node resting from completely fried to clear as a bell, it would see a total of 5000 experience added to its experience total, 4000 of which would be the bonus amount.&lt;br /&gt;
&lt;br /&gt;
Normally, absorbing experience will also absorb 1 [[Experience_pool#Long-term_Experience|Long-term experience]] for every 10 experience absorbed, but if any cycle of lumnis is active, this does not occur.&lt;br /&gt;
&lt;br /&gt;
Any experience that is instantly granted as direct experience is not boosted by the Gift of Lumnis. For example, handing in a [[https://gswiki.play.net/Adventurer%27s_Guild|bounty reward]] while fried grants some of the reward as direct experience; such experience would not be boosted by lumnis.&lt;br /&gt;
&lt;br /&gt;
==Roleplaying Awards==&lt;br /&gt;
The effects of a [[roleplaying award]] (RPA) and the Gift of Lumnis are additive, and experience can be gained up to a factor of 6.  The above character would be able to hold 6000 exp in their head, gain 600 exp for killing a like-level creature, and absorb exp at up to 198 per pulse (unmodified).  Again, each bonus is for a set amount of experience and will last until that bonus experience is absorbed.&lt;br /&gt;
&lt;br /&gt;
==Timing==&lt;br /&gt;
Gift of Lumnis begins on the first pulse that a character on a paid account has unabsorbed experience in their head.  As long as that character has unabsorbed experience in their head, it will absorb bonus experience.  One week minus 3 hours (165 hours) after the initiation of each Gift of Lumnis cycle begins, Gift will begin again on the next experience-gaining pulse.  Because the actual beginning of the Gift requires one to have unabsorbed experience, if a character spends several weeks without gaining any experience to absorb, Gift will not start until they do.&lt;br /&gt;
&lt;br /&gt;
Normally, Lumnis restarts once a character logs in and absorbs some experience 1 week (minus 3 hours) after their previous lumnis started. Alternatively, it is possible to pick a specific day of the week and time for your lumnis to start, whether the character is logged in or not, via [[#Lumnis Schedule|Lumnis Schedule]].&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
==LUMNIS (verb)==&lt;br /&gt;
The &#039;&#039;&#039;Lumnis&#039;&#039;&#039; verb is used to check a character&#039;s [[Gift of Lumnis]] status and also reset it.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
  LUMNIS [option] {args}&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
   INFO               - View your current Gift of Lumnis status.&lt;br /&gt;
   SCHEDULE SET [#]   - Pick a set time that your Gift of Lumnis will start each week.&lt;br /&gt;
   SCHEDULE CLEAR     - Clear any preset schedule.&lt;br /&gt;
   CONTEST STATUS     - Check status of Lumnis contest.&lt;br /&gt;
   CONTEST WINNERS    - Display Lumnis contest winners.&lt;br /&gt;
   CONTEST SHOWNAME   - Set your Lumnis contest display options.&lt;br /&gt;
   CONTEST CURRENT    - Show current Lumnis contest status.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Lumnis Info===&lt;br /&gt;
{{boldmono|LUMNIS INFO }}provides the current status of Lumnis, when the next one begins, as well as information about when Lumnis Schedule is set for, if applicable.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS INFO&#039;&#039;&lt;br /&gt;
Your Gift of Lumnis has expired for this week.  It is scheduled to refresh in 1 day, 7 hours and 4 minutes.&lt;br /&gt;
&lt;br /&gt;
You have not selected a Gift of Lumnis schedule.&lt;br /&gt;
You have no available uses of LUMNIS SCHEDULE.  You can purchase uses from the SimuCoins Store.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Lumnis Schedule==&lt;br /&gt;
&amp;lt;section begin=schedule /&amp;gt;{{boldmono|LUMNIS SCHEDULE }}can be used to move a character&#039;s Lumnis earlier or later than its scheduled refresh date.  If it is moved to an earlier time, it will function as expected for the first usage. However, if is it again used to schedule another further refresh date within 6 months of the first change, one will have to wait a week from that date for Gift to activate. This is to avoid players being able to use SimuCoins to schedule back-to-back-to-back-to-back Gifts of Lumnis, every six hours, ad infinitum.  It is possible to have two Gifts of Lumnis in a single week every 6 months, but when using the Lumnis Schedule the new date and time must be at least 1 min later than the current date and time of when your Gift of Lumnis is scheduled to start.  For example, if your Gift of Lumnis is scheduled to start on Saturdays at 12:01 am, your new Lumnis Schedule must be set to Saturdays at 12:02 am or a later date and time to activate a new Gift of Lumnis.  Sunday is considered the start of the week for the purposes of scheduling your Gift of Lumnis.  To take full advantage of this, you must have enough play time to use up your first Gift of Lumnis and enough play time to use up a second Gift of Lumnis in a 7 day period.&lt;br /&gt;
&lt;br /&gt;
This command is available in the [[SimuCoin|SimuCoins Store]] for 500 SCs ([https://store.play.net/store/purchaseitem/320?gameCode=GS a Lumnis schedule])&amp;lt;noinclude&amp;gt;, and is one of the [[Gift of the Gods|Gifts of the Gods]] awarded on the 29th day of [[Login Rewards]]&amp;lt;/noinclude&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Use{{mono| LUMNIS INFO }}to see a character&#039;s current set Lumnis start time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE&lt;br /&gt;
You must specify the time you wish to schedule your Gift of Lumnis to start at in the form of DHHMM.&lt;br /&gt;
&lt;br /&gt;
D is the day that you want your Gift of Lumnis to begin on, starting with Day 1 as Sunday, 2 as Monday, 3 as Tuesday, 4 as Wednesday, 5 as Thursday, 6 as Friday, and 7 as Saturday.&lt;br /&gt;
&lt;br /&gt;
HH is the hour (on the 24 hour clock) that you want your Gift of Lumnis to start at, starting with 00 as midnight (the very start of the day), and ending with 23 (11 PM).  The hour corresponds with the in-game [[TIME]] command (Eastern Time).&lt;br /&gt;
&lt;br /&gt;
MM is the minute of the hour that you want your Gift of Lumnis to start at, starting with 00 as the very start of the hour and ending with 59.&lt;br /&gt;
&lt;br /&gt;
For example, 41630 would result in your Gift of Lumnis being scheduled to start each week on Wednesday at 4:30 PM, in-game time.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;lumnis schedule 10800&lt;br /&gt;
You must specify either SET or CLEAR.&lt;br /&gt;
&amp;gt;lumnis schedule set 10800&lt;br /&gt;
You are scheduling your Gift of Lumnis to start on Sundays at 08:00.  If this is correct, please enter LUMNIS SCHEDULE SET 10800 CONFIRM within the next 30 seconds.&lt;br /&gt;
&lt;br /&gt;
Please note that due to the fact that you have already changed your schedule within the last 6 months, the interval between your last Gift of Lumnis and your next one may be between 1-2 weeks instead of the normal 1 week interval, depending on your scheduling choice.  Once this adjustment period finishes, the normal 1 week interval between your Gift of Lumnis activations will resume.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE SET 10800 CONFIRM&lt;br /&gt;
You have scheduled your Gift of Lumnis to start on Sundays at 08:00, in-game time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No uses&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE SET&#039;&#039;&lt;br /&gt;
In order to schedule your Lumnis start time, you must first purchase the option from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE CLEAR&#039;&#039;&lt;br /&gt;
You do not currently have a preset Gift of Lumnis schedule.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;section end=schedule /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Available vs Not Available&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Fri Feb 18 04:00:21 ET 2022.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Sat Aug 20 15:17:31 ET 2022.  You must wait six months from then to use another Lumnis scheduling option.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
==Messaging==&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis starting:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
A soft feeling of serenity touches your mind, providing you with a clearer understanding of recent events.&lt;br /&gt;
[Use the LUMNIS verb to see your Gift of Lumnis options.]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis ending:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
The soft feeling of serenity slowly dissipates from your mind.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;While under the effects of the Gift of Lumnis, when a character uses the [[EXPERIENCE (verb)]] command, the following message is appended to the end of the normal messaging:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You feel a strange sense of serenity and find that you are able to reflect on recent events with uncommon clarity and understanding.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Historical Facts==&lt;br /&gt;
&lt;br /&gt;
In September 2019, the Lumnis Contest ended and the Gift of Lumnis was set to be 7300 base experience for both phases, or 21,900 total bonus experience.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Experience (saved posts)]]&lt;br /&gt;
* [[Experience (saved posts archive)]]&lt;br /&gt;
* [[Lumnis Contest]] (deprecated)&lt;br /&gt;
{{top}}&lt;br /&gt;
[[Category:Character Mechanics]]&lt;br /&gt;
[[Category: Experience]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=257047</id>
		<title>Gift of Lumnis</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=257047"/>
		<updated>2026-04-26T21:42:26Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: /* Lumnis Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&amp;lt;section begin=Exp page /&amp;gt;&#039;&#039;&#039;Gift of Lumnis&#039;&#039;&#039; (commonly referred to as &amp;quot;Gift&amp;quot;, &amp;quot;Lumnis&amp;quot;, or &amp;quot;XXX&amp;quot;) multiplies [[field experience]] absorption, increasing the rate at which characters gain [[level]]s.  It was created to decrease the &amp;lt;noinclude&amp;gt;[[&amp;lt;/noinclude&amp;gt;experience&amp;lt;noinclude&amp;gt;]]&amp;lt;/noinclude&amp;gt; disparity between characters of players who can only play a short time each week, and those who can play more frequently.  &lt;br /&gt;
&lt;br /&gt;
The Gift of Lumnis occurs once per week for all characters on paid [[subscription]] accounts. ([[F2P]] accounts may purchase [[Gift of Lumnis token]]s to gain access.)&lt;br /&gt;
&lt;br /&gt;
The gift also serves as a weekly &#039;reset&#039;. For example, [[Verb:RESOURCE|Profession resources]] have a weekly cap, and this cap resets as your Lumnis starts.&lt;br /&gt;
&lt;br /&gt;
Lumnis boosts your experience gain in phases of 7,300 experience. All paid accounts get 2 phases standard (for a total of 21,900 bonus experience), and you may donate using &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; to get 4 phases instead (for a total of 73,000 bonus experience).&lt;br /&gt;
&lt;br /&gt;
Boosted lumnis will quintuple the first 7300 experience you absorb, then quadruple the next 7300, then triple the next 7300, and finally double the next 7300.&lt;br /&gt;
&lt;br /&gt;
Basic lumnis only has the last 2 of those phases: The first 7300 experience absorbed is tripled, the next 7300 experience is doubled.&lt;br /&gt;
&lt;br /&gt;
To gain the boosted lumnis, use the &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; command. This cost 250,000 silvers (significantly less for character at level 20 or less), and upon donating, the next time your lumnis would start, you&#039;ll get the 4 (boosted) cycles. There is no way to retroactively gain the boosted cycles if your lumnis has already started. Level 21+ characters can donate more than once, but this merely pre-pays for future weeks, it does not grant additional cycles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=Exp page /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Boost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Temple Donation Maximum&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | No Donation Maximum&lt;br /&gt;
|-&lt;br /&gt;
| 5x || 29,200 || -&lt;br /&gt;
|-&lt;br /&gt;
| 4x || 21,900 || -&lt;br /&gt;
|-&lt;br /&gt;
| 3x || 14,600 || 14,600&lt;br /&gt;
|-&lt;br /&gt;
| 2x || 7,300 || 7,300&lt;br /&gt;
|-&lt;br /&gt;
| Total || 73,000 || 21,900&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Experience Absorption==&lt;br /&gt;
While under the effects of Lumnis, the amount of experience converted from the field experience pool to total experience is increased by a factor of 5/4/3/2, until the designated amount of bonus experience for that phase has been absorbed.  How much experience a character can hold in their &amp;quot;[[Experience#Size_of_Pool|unabsorbed experience pool]]&amp;quot; and how much is removed from this pool per experience pulse remain unchanged.  &lt;br /&gt;
&lt;br /&gt;
For example, a character with a 100 [[Discipline]] and a 100 [[Logic]] stat and no other experience pool bonuses that is completely fried (1000/1000 experience in the pool) and resting on a [[node]] with no other modifiers sees 33 experience points converted from the unabsorbed field experience pool in a normal pulse; however, while under the effects of a fresh, boosted  Gift of Lumnis, the character under the same conditions would instead see 165 experience added to their experience total, while still only 33 experience is subtracted from the unabsorbed field experience pool.  Thus, if this character rested on a node resting from completely fried to clear as a bell, it would see a total of 5000 experience added to its experience total, 4000 of which would be the bonus amount.&lt;br /&gt;
&lt;br /&gt;
Normally, absorbing experience will also absorb 1 [[Experience_pool#Long-term_Experience|Long-term experience]] for every 10 experience absorbed, but if any cycle of lumnis is active, this does not occur.&lt;br /&gt;
&lt;br /&gt;
Any experience that is instantly granted as direct experience is not boosted by the Gift of Lumnis. For example, handing in a [[https://gswiki.play.net/Adventurer%27s_Guild|bounty reward]] while fried grants some of the reward as direct experience; such experience would not be boosted by lumnis.&lt;br /&gt;
&lt;br /&gt;
==Roleplaying Awards==&lt;br /&gt;
The effects of a [[roleplaying award]] (RPA) and the Gift of Lumnis are additive, and experience can be gained up to a factor of 6.  The above character would be able to hold 6000 exp in their head, gain 600 exp for killing a like-level creature, and absorb exp at up to 198 per pulse (unmodified).  Again, each bonus is for a set amount of experience and will last until that bonus experience is absorbed.&lt;br /&gt;
&lt;br /&gt;
==Timing==&lt;br /&gt;
Gift of Lumnis begins on the first pulse that a character on a paid account has unabsorbed experience in their head.  As long as that character has unabsorbed experience in their head, it will absorb bonus experience.  One week minus 3 hours (165 hours) after the initiation of each Gift of Lumnis cycle begins, Gift will begin again on the next experience-gaining pulse.  Because the actual beginning of the Gift requires one to have unabsorbed experience, if a character spends several weeks without gaining any experience to absorb, Gift will not start until they do.&lt;br /&gt;
&lt;br /&gt;
Normally, Lumnis restarts once a character logs in and absorbs some experience 1 week (minus 3 hours) after their previous lumnis started. Alternatively, it is possible to pick a specific day of the week and time for your lumnis to start, whether the character is logged in or not, via [[#Lumnis Schedule|Lumnis Schedule]].&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
==LUMNIS (verb)==&lt;br /&gt;
The &#039;&#039;&#039;Lumnis&#039;&#039;&#039; verb is used to check a character&#039;s [[Gift of Lumnis]] status and also reset it.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
  LUMNIS [option] {args}&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
   INFO               - View your current Gift of Lumnis status.&lt;br /&gt;
   SCHEDULE SET [#]   - Pick a set time that your Gift of Lumnis will start each week.&lt;br /&gt;
   SCHEDULE CLEAR     - Clear any preset schedule.&lt;br /&gt;
   CONTEST STATUS     - Check status of Lumnis contest.&lt;br /&gt;
   CONTEST WINNERS    - Display Lumnis contest winners.&lt;br /&gt;
   CONTEST SHOWNAME   - Set your Lumnis contest display options.&lt;br /&gt;
   CONTEST CURRENT    - Show current Lumnis contest status.&lt;br /&gt;
&lt;br /&gt;
===Lumnis Info===&lt;br /&gt;
{{boldmono|LUMNIS INFO }}provides the current status of Lumnis, when the next one begins, as well as information about when Lumnis Schedule is set for, if applicable.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS INFO&#039;&#039;&lt;br /&gt;
Your Gift of Lumnis has expired for this week.  It is scheduled to refresh in 1 day, 7 hours and 4 minutes.&lt;br /&gt;
&lt;br /&gt;
You have not selected a Gift of Lumnis schedule.&lt;br /&gt;
You have no available uses of LUMNIS SCHEDULE.  You can purchase uses from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
==Lumnis Schedule==&lt;br /&gt;
&amp;lt;section begin=schedule /&amp;gt;{{boldmono|LUMNIS SCHEDULE }}can be used to move a character&#039;s Lumnis earlier or later than its scheduled refresh date.  If it is moved to an earlier time, it will function as expected for the first usage. However, if it&#039;s used again to schedule another refresh within 6 months of the first change, Gift activation requires a one-week wait from that new date. This is to avoid players being able to use SimuCoins to schedule back-to-back-to-back-to-back Gifts of Lumnis, every six hours, ad infinitum.  It is possible to have two Gifts of Lumnis in a single week every 6 months, but when using the Lumnis Schedule the new date and time must be at least 1 min later than the current date and time of when your Gift of Lumnis is scheduled to start.  For example, if your Gift of Lumnis is scheduled to start on Saturdays at 12:01 am, your new Lumnis Schedule must be set to Saturdays at 12:02 am or a later date and time to activate a new Gift of Lumnis.  Sunday is considered the start of the week for the purposes of scheduling your Gift of Lumnis.  To take full advantage of this, you must have enough play time to use up your first Gift of Lumnis and enough play time to use up a second Gift of Lumnis in a 7 day period.&lt;br /&gt;
&lt;br /&gt;
This command is available in the [[SimuCoin|SimuCoins Store]] for 500 SCs ([https://store.play.net/store/purchaseitem/320?gameCode=GS a Lumnis schedule])&amp;lt;noinclude&amp;gt;, and is one of the [[Gift of the Gods|Gifts of the Gods]] awarded on the 29th day of [[Login Rewards]]&amp;lt;/noinclude&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Use{{mono| LUMNIS INFO }}to see a character&#039;s current set Lumnis start time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE&lt;br /&gt;
You must specify the time you wish to schedule your Gift of Lumnis to start at in the form of DHHMM.&lt;br /&gt;
&lt;br /&gt;
D is the day that you want your Gift of Lumnis to begin on, starting with Day 1 as Sunday, 2 as Monday, 3 as Tuesday, 4 as Wednesday, 5 as Thursday, 6 as Friday, and 7 as Saturday.&lt;br /&gt;
&lt;br /&gt;
HH is the hour (on the 24 hour clock) that you want your Gift of Lumnis to start at, starting with 00 as midnight (the very start of the day), and ending with 23 (11 PM).  The hour corresponds with the in-game [[TIME]] command (Eastern Time).&lt;br /&gt;
&lt;br /&gt;
MM is the minute of the hour that you want your Gift of Lumnis to start at, starting with 00 as the very start of the hour and ending with 59.&lt;br /&gt;
&lt;br /&gt;
For example, 41630 would result in your Gift of Lumnis being scheduled to start each week on Wednesday at 4:30 PM, in-game time.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;lumnis schedule 10800&lt;br /&gt;
You must specify either SET or CLEAR.&lt;br /&gt;
&amp;gt;lumnis schedule set 10800&lt;br /&gt;
You are scheduling your Gift of Lumnis to start on Sundays at 08:00.  If this is correct, please enter LUMNIS SCHEDULE SET 10800 CONFIRM within the next 30 seconds.&lt;br /&gt;
&lt;br /&gt;
Please note that due to the fact that you have already changed your schedule within the last 6 months, the interval between your last Gift of Lumnis and your next one may be between 1-2 weeks instead of the normal 1 week interval, depending on your scheduling choice.  Once this adjustment period finishes, the normal 1 week interval between your Gift of Lumnis activations will resume.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE SET 10800 CONFIRM&lt;br /&gt;
You have scheduled your Gift of Lumnis to start on Sundays at 08:00, in-game time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No uses&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE SET&#039;&#039;&lt;br /&gt;
In order to schedule your Lumnis start time, you must first purchase the option from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE CLEAR&#039;&#039;&lt;br /&gt;
You do not currently have a preset Gift of Lumnis schedule.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;section end=schedule /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Available vs Not Available&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Fri Feb 18 04:00:21 ET 2022.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Sat Aug 20 15:17:31 ET 2022.  You must wait six months from then to use another Lumnis scheduling option.&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
==Messaging==&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis starting:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
A soft feeling of serenity touches your mind, providing you with a clearer understanding of recent events.&lt;br /&gt;
[Use the LUMNIS verb to see your Gift of Lumnis options.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis ending:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
The soft feeling of serenity slowly dissipates from your mind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;While under the effects of the Gift of Lumnis, when a character uses the [[EXPERIENCE (verb)]] command, the following message is appended to the end of the normal messaging:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You feel a strange sense of serenity and find that you are able to reflect on recent events with uncommon clarity and understanding.&lt;br /&gt;
&lt;br /&gt;
==Historical Facts==&lt;br /&gt;
&lt;br /&gt;
In September 2019, the Lumnis Contest ended and the Gift of Lumnis was set to be 7300 base experience for both phases, or 21,900 total bonus experience.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Experience (saved posts)]]&lt;br /&gt;
* [[Experience (saved posts archive)]]&lt;br /&gt;
* [[Lumnis Contest]] (deprecated)&lt;br /&gt;
{{top}}&lt;br /&gt;
[[Category:Character Mechanics]]&lt;br /&gt;
[[Category: Experience]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=256501</id>
		<title>Gift of Lumnis</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=256501"/>
		<updated>2026-04-19T04:34:23Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Undo revision 256500 by TRIEX (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&amp;lt;section begin=Exp page /&amp;gt;&#039;&#039;&#039;Gift of Lumnis&#039;&#039;&#039; (commonly referred to as &amp;quot;Gift&amp;quot;, &amp;quot;Lumnis&amp;quot;, or &amp;quot;XXX&amp;quot;) multiplies [[field experience]] absorption, increasing the rate at which characters gain [[level]]s.  It was created to decrease the &amp;lt;noinclude&amp;gt;[[&amp;lt;/noinclude&amp;gt;experience&amp;lt;noinclude&amp;gt;]]&amp;lt;/noinclude&amp;gt; disparity between characters of players who can only play a short time each week, and those who can play more frequently.  &lt;br /&gt;
&lt;br /&gt;
The Gift of Lumnis occurs once per week for all characters on paid [[subscription]] accounts, and has two phases.&lt;br /&gt;
&lt;br /&gt;
([[F2P]] accounts may purchase [[Gift of Lumnis token]]s to gain access.)&lt;br /&gt;
&lt;br /&gt;
During the first phase experience points are tripled until 14,600 bonus experience is gained, and during the second phase experience points are doubled until 7,300 bonus experience is gained.&lt;br /&gt;
&lt;br /&gt;
In January 2026, the Gift of Lumnis was updated to allow for the purchase of two additional bonus experience phases in exchange for silvers.  Purchased through the command &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; for a cost of 250,000 silvers.  During the first new phase, experience points are quintupled until 29,200 bonus experience points are gained.  During the second new phase experience points are quadrupled until 21,900 bonus experience points are gained.&lt;br /&gt;
&lt;br /&gt;
The combined total of bonus experience points when purchasing &#039;&#039;&#039;Temple Donations&#039;&#039;&#039; is 73,000.&lt;br /&gt;
&amp;lt;section end=Exp page /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Boost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Temple Donation Maximum&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | No Donation Maximum&lt;br /&gt;
|-&lt;br /&gt;
| 5x || 29,200 || -&lt;br /&gt;
|-&lt;br /&gt;
| 4x || 21,900 || -&lt;br /&gt;
|-&lt;br /&gt;
| 3x || 14,600 || 14,600&lt;br /&gt;
|-&lt;br /&gt;
| 2x || 7,300 || 7,300&lt;br /&gt;
|-&lt;br /&gt;
| Total || 73,000 || 21,900&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Experience Absorption==&lt;br /&gt;
While under the effects of Lumnis, the amount of experience converted from the field experience pool to total experience is increased by a factor of three, and then two, until the designated amount of bonus experience for that phase has been absorbed.  How much experience a character can hold in their &amp;quot;[[Experience#Size_of_Pool|unabsorbed experience pool]]&amp;quot; and how much is removed from this pool per experience pulse remain unchanged.  &lt;br /&gt;
&lt;br /&gt;
For example, a character with a 100 [[Discipline]] and a 100 [[Logic]] stat that is completely fried (1000/1000 experience in the pool) and resting on a [[node]] with no other modifiers sees 33 experience points converted from the unabsorbed field experience pool in a normal pulse; however, while under the effects of a fresh Gift of Lumnis, the character under the same conditions would instead see 99 experience added to their experience total, while still only 33 experience is subtracted from the unabsorbed field experience pool.  Thus, if this character rested on a node resting from completely fried to clear as a bell, it would see a total of 3000 experience added to its experience total, 2000 of which would be the bonus amount.&lt;br /&gt;
&lt;br /&gt;
==Roleplaying Awards==&lt;br /&gt;
The effects of a [[roleplaying award]] (RPA) and the Gift of Lumnis are additive, and experience can be gained up to a factor of 6.  The above character would be able to hold 6000 exp in their head, gain 600 exp for killing a like-level creature, and absorb exp at up to 198 per pulse (unmodified).  Again, each bonus is for a set amount of experience and will last until that bonus experience is absorbed.&lt;br /&gt;
&lt;br /&gt;
==Timing==&lt;br /&gt;
Gift of Lumnis begins on the first pulse that a character on a paid account has unabsorbed experience in their head.  As long as that character has unabsorbed experience in their head, it will absorb bonus experience.  One week minus 3 hours (165 hours) after the initiation of each Gift of Lumnis cycle begins, Gift will begin again on the next experience-gaining pulse.  Because the actual beginning of the Gift requires one to have unabsorbed experience, if a character spends several weeks without gaining any experience to absorb, Gift will not start until they do.  The start of Gift can be controlled via [[#Lumnis Schedule|Lumnis Schedule]].&lt;br /&gt;
&lt;br /&gt;
For [[sorcerer]]s, the timing of Lumnis coincides with their weekly [[necrotic energy]] allowance reset for [[Ensorcell (735)]].  &lt;br /&gt;
{{top}}&lt;br /&gt;
==LUMNIS (verb)==&lt;br /&gt;
The &#039;&#039;&#039;Lumnis&#039;&#039;&#039; verb is used to check a character&#039;s [[Gift of Lumnis]] status and also reset it.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
  LUMNIS [option] {args}&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
   INFO               - View your current Gift of Lumnis status.&lt;br /&gt;
   SCHEDULE SET [#]   - Pick a set time that your Gift of Lumnis will start each week.&lt;br /&gt;
   SCHEDULE CLEAR     - Clear any preset schedule.&lt;br /&gt;
   CONTEST STATUS     - Check status of Lumnis contest.&lt;br /&gt;
   CONTEST WINNERS    - Display Lumnis contest winners.&lt;br /&gt;
   CONTEST SHOWNAME   - Set your Lumnis contest display options.&lt;br /&gt;
   CONTEST CURRENT    - Show current Lumnis contest status.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Lumnis Info===&lt;br /&gt;
{{boldmono|LUMNIS INFO }}provides the current status of Lumnis, when the next one begins, as well as information about when Lumnis Schedule is set for, if applicable.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS INFO&#039;&#039;&lt;br /&gt;
Your Gift of Lumnis has expired for this week.  It is scheduled to refresh in 1 day, 7 hours and 4 minutes.&lt;br /&gt;
&lt;br /&gt;
You have not selected a Gift of Lumnis schedule.&lt;br /&gt;
You have no available uses of LUMNIS SCHEDULE.  You can purchase uses from the SimuCoins Store.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Lumnis Schedule==&lt;br /&gt;
&amp;lt;section begin=schedule /&amp;gt;{{boldmono|LUMNIS SCHEDULE }}can be used to move a character&#039;s Lumnis earlier or later than its scheduled refresh date.  If it is moved to an earlier time, it will function as expected for the first usage. However, if is it again used to schedule another further refresh date within 6 months of the first change, one will have to wait a week from that date for Gift to activate. This is to avoid players being able to use SimuCoins to schedule back-to-back-to-back-to-back Gifts of Lumnis, every six hours, ad infinitum.  It is possible to have two Gifts of Lumnis in a single week every 6 months, but when using the Lumnis Schedule the new date and time must be at least 1 min later than the current date and time of when your Gift of Lumnis is scheduled to start.  For example, if your Gift of Lumnis is scheduled to start on Saturdays at 12:01 am, your new Lumnis Schedule must be set to Saturdays at 12:02 am or a later date and time to activate a new Gift of Lumnis.  Sunday is considered the start of the week for the purposes of scheduling your Gift of Lumnis.  To take full advantage of this, you must have enough play time to use up your first Gift of Lumnis and enough play time to use up a second Gift of Lumnis in a 7 day period.&lt;br /&gt;
&lt;br /&gt;
This command is available in the [[SimuCoin|SimuCoins Store]] for 500 SCs ([https://store.play.net/store/purchaseitem/320?gameCode=GS a Lumnis schedule])&amp;lt;noinclude&amp;gt;, and is one of the [[Gift of the Gods|Gifts of the Gods]] awarded on the 29th day of [[Login Rewards]]&amp;lt;/noinclude&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Use{{mono| LUMNIS INFO }}to see a character&#039;s current set Lumnis start time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE&lt;br /&gt;
You must specify the time you wish to schedule your Gift of Lumnis to start at in the form of DHHMM.&lt;br /&gt;
&lt;br /&gt;
D is the day that you want your Gift of Lumnis to begin on, starting with Day 1 as Sunday, 2 as Monday, 3 as Tuesday, 4 as Wednesday, 5 as Thursday, 6 as Friday, and 7 as Saturday.&lt;br /&gt;
&lt;br /&gt;
HH is the hour (on the 24 hour clock) that you want your Gift of Lumnis to start at, starting with 00 as midnight (the very start of the day), and ending with 23 (11 PM).  The hour corresponds with the in-game [[TIME]] command (Eastern Time).&lt;br /&gt;
&lt;br /&gt;
MM is the minute of the hour that you want your Gift of Lumnis to start at, starting with 00 as the very start of the hour and ending with 59.&lt;br /&gt;
&lt;br /&gt;
For example, 41630 would result in your Gift of Lumnis being scheduled to start each week on Wednesday at 4:30 PM, in-game time.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;lumnis schedule 10800&lt;br /&gt;
You must specify either SET or CLEAR.&lt;br /&gt;
&amp;gt;lumnis schedule set 10800&lt;br /&gt;
You are scheduling your Gift of Lumnis to start on Sundays at 08:00.  If this is correct, please enter LUMNIS SCHEDULE SET 10800 CONFIRM within the next 30 seconds.&lt;br /&gt;
&lt;br /&gt;
Please note that due to the fact that you have already changed your schedule within the last 6 months, the interval between your last Gift of Lumnis and your next one may be between 1-2 weeks instead of the normal 1 week interval, depending on your scheduling choice.  Once this adjustment period finishes, the normal 1 week interval between your Gift of Lumnis activations will resume.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE SET 10800 CONFIRM&lt;br /&gt;
You have scheduled your Gift of Lumnis to start on Sundays at 08:00, in-game time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No uses&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE SET&#039;&#039;&lt;br /&gt;
In order to schedule your Lumnis start time, you must first purchase the option from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE CLEAR&#039;&#039;&lt;br /&gt;
You do not currently have a preset Gift of Lumnis schedule.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;section end=schedule /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Available vs Not Available&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Fri Feb 18 04:00:21 ET 2022.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Sat Aug 20 15:17:31 ET 2022.  You must wait six months from then to use another Lumnis scheduling option.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
==Messaging==&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis starting:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
A soft feeling of serenity touches your mind, providing you with a clearer understanding of recent events.&lt;br /&gt;
[Use the LUMNIS verb to see your Gift of Lumnis options.]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis ending:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
The soft feeling of serenity slowly dissipates from your mind.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;While under the effects of the Gift of Lumnis, when a character uses the [[EXPERIENCE (verb)]] command, the following message is appended to the end of the normal messaging:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You feel a strange sense of serenity and find that you are able to reflect on recent events with uncommon clarity and understanding.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Historical Facts==&lt;br /&gt;
&lt;br /&gt;
In September 2019, the Lumnis Contest ended and the Gift of Lumnis was set to be 7300 base experience for both phases, or 21,900 total bonus experience.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Experience (saved posts)]]&lt;br /&gt;
* [[Experience (saved posts archive)]]&lt;br /&gt;
* [[Lumnis Contest]] (deprecated)&lt;br /&gt;
{{top}}&lt;br /&gt;
[[Category:Character Mechanics]]&lt;br /&gt;
[[Category: Experience]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=256500</id>
		<title>Gift of Lumnis</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Gift_of_Lumnis&amp;diff=256500"/>
		<updated>2026-04-19T04:33:39Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: /* Lumnis Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&amp;lt;section begin=Exp page /&amp;gt;&#039;&#039;&#039;Gift of Lumnis&#039;&#039;&#039; (commonly referred to as &amp;quot;Gift&amp;quot;, &amp;quot;Lumnis&amp;quot;, or &amp;quot;XXX&amp;quot;) multiplies [[field experience]] absorption, increasing the rate at which characters gain [[level]]s.  It was created to decrease the &amp;lt;noinclude&amp;gt;[[&amp;lt;/noinclude&amp;gt;experience&amp;lt;noinclude&amp;gt;]]&amp;lt;/noinclude&amp;gt; disparity between characters of players who can only play a short time each week, and those who can play more frequently.  &lt;br /&gt;
&lt;br /&gt;
The Gift of Lumnis occurs once per week for all characters on paid [[subscription]] accounts, and has two phases.&lt;br /&gt;
&lt;br /&gt;
([[F2P]] accounts may purchase [[Gift of Lumnis token]]s to gain access.)&lt;br /&gt;
&lt;br /&gt;
During the first phase experience points are tripled until 14,600 bonus experience is gained, and during the second phase experience points are doubled until 7,300 bonus experience is gained.&lt;br /&gt;
&lt;br /&gt;
In January 2026, the Gift of Lumnis was updated to allow for the purchase of two additional bonus experience phases in exchange for silvers.  Purchased through the command &#039;&#039;&#039;LUMNIS DONATE&#039;&#039;&#039; for a cost of 250,000 silvers.  During the first new phase, experience points are quintupled until 29,200 bonus experience points are gained.  During the second new phase experience points are quadrupled until 21,900 bonus experience points are gained.&lt;br /&gt;
&lt;br /&gt;
The combined total of bonus experience points when purchasing &#039;&#039;&#039;Temple Donations&#039;&#039;&#039; is 73,000.&lt;br /&gt;
&amp;lt;section end=Exp page /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Boost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Temple Donation Maximum&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | No Donation Maximum&lt;br /&gt;
|-&lt;br /&gt;
| 5x || 29,200 || -&lt;br /&gt;
|-&lt;br /&gt;
| 4x || 21,900 || -&lt;br /&gt;
|-&lt;br /&gt;
| 3x || 14,600 || 14,600&lt;br /&gt;
|-&lt;br /&gt;
| 2x || 7,300 || 7,300&lt;br /&gt;
|-&lt;br /&gt;
| Total || 73,000 || 21,900&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Experience Absorption==&lt;br /&gt;
While under the effects of Lumnis, the amount of experience converted from the field experience pool to total experience is increased by a factor of three, and then two, until the designated amount of bonus experience for that phase has been absorbed.  How much experience a character can hold in their &amp;quot;[[Experience#Size_of_Pool|unabsorbed experience pool]]&amp;quot; and how much is removed from this pool per experience pulse remain unchanged.  &lt;br /&gt;
&lt;br /&gt;
For example, a character with a 100 [[Discipline]] and a 100 [[Logic]] stat that is completely fried (1000/1000 experience in the pool) and resting on a [[node]] with no other modifiers sees 33 experience points converted from the unabsorbed field experience pool in a normal pulse; however, while under the effects of a fresh Gift of Lumnis, the character under the same conditions would instead see 99 experience added to their experience total, while still only 33 experience is subtracted from the unabsorbed field experience pool.  Thus, if this character rested on a node resting from completely fried to clear as a bell, it would see a total of 3000 experience added to its experience total, 2000 of which would be the bonus amount.&lt;br /&gt;
&lt;br /&gt;
==Roleplaying Awards==&lt;br /&gt;
The effects of a [[roleplaying award]] (RPA) and the Gift of Lumnis are additive, and experience can be gained up to a factor of 6.  The above character would be able to hold 6000 exp in their head, gain 600 exp for killing a like-level creature, and absorb exp at up to 198 per pulse (unmodified).  Again, each bonus is for a set amount of experience and will last until that bonus experience is absorbed.&lt;br /&gt;
&lt;br /&gt;
==Timing==&lt;br /&gt;
Gift of Lumnis begins on the first pulse that a character on a paid account has unabsorbed experience in their head.  As long as that character has unabsorbed experience in their head, it will absorb bonus experience.  One week minus 3 hours (165 hours) after the initiation of each Gift of Lumnis cycle begins, Gift will begin again on the next experience-gaining pulse.  Because the actual beginning of the Gift requires one to have unabsorbed experience, if a character spends several weeks without gaining any experience to absorb, Gift will not start until they do.  The start of Gift can be controlled via [[#Lumnis Schedule|Lumnis Schedule]].&lt;br /&gt;
&lt;br /&gt;
For [[sorcerer]]s, the timing of Lumnis coincides with their weekly [[necrotic energy]] allowance reset for [[Ensorcell (735)]].  &lt;br /&gt;
{{top}}&lt;br /&gt;
==LUMNIS (verb)==&lt;br /&gt;
The &#039;&#039;&#039;Lumnis&#039;&#039;&#039; verb is used to check a character&#039;s [[Gift of Lumnis]] status and also reset it.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
  LUMNIS [option] {args}&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
   INFO               - View your current Gift of Lumnis status.&lt;br /&gt;
   SCHEDULE SET [#]   - Pick a set time that your Gift of Lumnis will start each week.&lt;br /&gt;
   SCHEDULE CLEAR     - Clear any preset schedule.&lt;br /&gt;
   CONTEST STATUS     - Check status of Lumnis contest.&lt;br /&gt;
   CONTEST WINNERS    - Display Lumnis contest winners.&lt;br /&gt;
   CONTEST SHOWNAME   - Set your Lumnis contest display options.&lt;br /&gt;
   CONTEST CURRENT    - Show current Lumnis contest status.&lt;br /&gt;
&lt;br /&gt;
===Lumnis Info===&lt;br /&gt;
{{boldmono|LUMNIS INFO }}provides the current status of Lumnis, when the next one begins, as well as information about when Lumnis Schedule is set for, if applicable.&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS INFO&#039;&#039;&lt;br /&gt;
Your Gift of Lumnis has expired for this week.  It is scheduled to refresh in 1 day, 7 hours and 4 minutes.&lt;br /&gt;
&lt;br /&gt;
You have not selected a Gift of Lumnis schedule.&lt;br /&gt;
You have no available uses of LUMNIS SCHEDULE.  You can purchase uses from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
==Lumnis Schedule==&lt;br /&gt;
&amp;lt;section begin=schedule /&amp;gt;{{boldmono|LUMNIS SCHEDULE }}can be used to move a character&#039;s Lumnis earlier or later than its scheduled refresh date.  If it is moved to an earlier time, it will function as expected for the first usage. However, if it is used again to schedule another refresh date within six months of the initial change, one will have to wait a week from that date for Gift to activate. This is to avoid players being able to use SimuCoins to schedule back-to-back-to-back-to-back Gifts of Lumnis, every six hours, ad infinitum.  It is possible to have two Gifts of Lumnis in a single week every 6 months, but when using the Lumnis Schedule the new date and time must be at least 1 min later than the current date and time of when your Gift of Lumnis is scheduled to start.  For example, if your Gift of Lumnis is scheduled to start on Saturdays at 12:01 am, your new Lumnis Schedule must be set to Saturdays at 12:02 am or a later date and time to activate a new Gift of Lumnis.  Sunday is considered the start of the week for the purposes of scheduling your Gift of Lumnis.  To take full advantage of this, you must have enough play time to use up your first Gift of Lumnis and enough play time to use up a second Gift of Lumnis in a 7 day period.&lt;br /&gt;
&lt;br /&gt;
This command is available in the [[SimuCoin|SimuCoins Store]] for 500 SCs ([https://store.play.net/store/purchaseitem/320?gameCode=GS a Lumnis schedule])&amp;lt;noinclude&amp;gt;, and is one of the [[Gift of the Gods|Gifts of the Gods]] awarded on the 29th day of [[Login Rewards]]&amp;lt;/noinclude&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Use{{mono| LUMNIS INFO }}to see a character&#039;s current set Lumnis start time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE&lt;br /&gt;
You must specify the time you wish to schedule your Gift of Lumnis to start at in the form of DHHMM.&lt;br /&gt;
&lt;br /&gt;
D is the day that you want your Gift of Lumnis to begin on, starting with Day 1 as Sunday, 2 as Monday, 3 as Tuesday, 4 as Wednesday, 5 as Thursday, 6 as Friday, and 7 as Saturday.&lt;br /&gt;
&lt;br /&gt;
HH is the hour (on the 24 hour clock) that you want your Gift of Lumnis to start at, starting with 00 as midnight (the very start of the day), and ending with 23 (11 PM).  The hour corresponds with the in-game [[TIME]] command (Eastern Time).&lt;br /&gt;
&lt;br /&gt;
MM is the minute of the hour that you want your Gift of Lumnis to start at, starting with 00 as the very start of the hour and ending with 59.&lt;br /&gt;
&lt;br /&gt;
For example, 41630 would result in your Gift of Lumnis being scheduled to start each week on Wednesday at 4:30 PM, in-game time.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;lumnis schedule 10800&lt;br /&gt;
You must specify either SET or CLEAR.&lt;br /&gt;
&amp;gt;lumnis schedule set 10800&lt;br /&gt;
You are scheduling your Gift of Lumnis to start on Sundays at 08:00.  If this is correct, please enter LUMNIS SCHEDULE SET 10800 CONFIRM within the next 30 seconds.&lt;br /&gt;
&lt;br /&gt;
Please note that due to the fact that you have already changed your schedule within the last 6 months, the interval between your last Gift of Lumnis and your next one may be between 1-2 weeks instead of the normal 1 week interval, depending on your scheduling choice.  Once this adjustment period finishes, the normal 1 week interval between your Gift of Lumnis activations will resume.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;LUMNIS SCHEDULE SET 10800 CONFIRM&lt;br /&gt;
You have scheduled your Gift of Lumnis to start on Sundays at 08:00, in-game time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No uses&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE SET&#039;&#039;&lt;br /&gt;
In order to schedule your Lumnis start time, you must first purchase the option from the SimuCoins Store.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;LUMNIS SCHEDULE CLEAR&#039;&#039;&lt;br /&gt;
You do not currently have a preset Gift of Lumnis schedule.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;section end=schedule /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Available vs Not Available&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Fri Feb 18 04:00:21 ET 2022.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&#039;&#039;lumnis info&#039;&#039;&lt;br /&gt;
You last used a Lumnis scheduling option on Sat Aug 20 15:17:31 ET 2022.  You must wait six months from then to use another Lumnis scheduling option.&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
==Messaging==&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis starting:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
A soft feeling of serenity touches your mind, providing you with a clearer understanding of recent events.&lt;br /&gt;
[Use the LUMNIS verb to see your Gift of Lumnis options.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gift of Lumnis ending:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
The soft feeling of serenity slowly dissipates from your mind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;While under the effects of the Gift of Lumnis, when a character uses the [[EXPERIENCE (verb)]] command, the following message is appended to the end of the normal messaging:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You feel a strange sense of serenity and find that you are able to reflect on recent events with uncommon clarity and understanding.&lt;br /&gt;
&lt;br /&gt;
==Historical Facts==&lt;br /&gt;
&lt;br /&gt;
In September 2019, the Lumnis Contest ended and the Gift of Lumnis was set to be 7300 base experience for both phases, or 21,900 total bonus experience.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Experience (saved posts)]]&lt;br /&gt;
* [[Experience (saved posts archive)]]&lt;br /&gt;
* [[Lumnis Contest]] (deprecated)&lt;br /&gt;
{{top}}&lt;br /&gt;
[[Category:Character Mechanics]]&lt;br /&gt;
[[Category: Experience]]&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Talk:Creating_Adventure_-_January_2018&amp;diff=102907</id>
		<title>Talk:Creating Adventure - January 2018</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Talk:Creating_Adventure_-_January_2018&amp;diff=102907"/>
		<updated>2018-02-03T16:32:43Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Minor correction suggestion to the response to the question, &#039;&#039;&amp;quot;What three people past or present would you invite to dinner?&#039;&#039;&lt;br /&gt;
- Nicola Tesla is spelled Nikola Tesla, with a K.&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Talk:Creating_Adventure_-_January_2018&amp;diff=102906</id>
		<title>Talk:Creating Adventure - January 2018</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Talk:Creating_Adventure_-_January_2018&amp;diff=102906"/>
		<updated>2018-02-03T16:31:16Z</updated>

		<summary type="html">&lt;p&gt;TRIEX: Change name: Nicola Tesla to Nikola Tesla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Name correction: Nicola Tesla is actually Nikola Tesla, with a K.&lt;/div&gt;</summary>
		<author><name>TRIEX</name></author>
	</entry>
</feed>