Skip to content

Wand Watcher Settings

kahlen-tech edited this page Oct 4, 2026 · 1 revision

Description

Keeps your wands' spells running. It stays running in the background and, whenever a wand's cooldown is up, pauses your other scripts, gets the wand, TAPs it (or whatever verb you set), puts it away and lets your scripts carry on.

If you own several of the same wand, it rotates through them, so each one gets the longest rest before it's used again.

Every wand must be listed in your gear:, or the script won't run. This keeps a wand from being lost out of your hands.
It isn't stopped by ;kill all or paused by ;pause all; use ;kill wand-watcher.

Settings

YAML Settings

Your wands

wands:
  bloodwood branch:
    activation message: <the first line the game shows when the wand works>
    container: backpack
    cooldown: 30
    count: 1
gear:
- :adjective: bloodwood
  :name: branch

Each key under wands: is the wand's adjective and noun, which must be unique. Its settings:

Setting Default Purpose
activation message Required. The message the game shows when the wand works. Copy it exactly, capitals included, and leave out characters like (, ), ?, * or +, or a successful tap counts as an unrecognized error. It can also be a list of messages.
activate verb tap The verb that uses the wand, e.g. rub or wave.
container Where the wand is kept. Without it, it takes the wand from wherever it is and STOWs it afterwards.
cooldown 30 Minutes to wait after a successful use.
count 2 How many of this wand you own. The default is 2, so set count: 1 if you only have one. With the wrong count, the wand can't be found and is dropped from the list.
spell The name of the spell the wand gives, as it shows in your active spells. If that spell still has more than min duration minutes left, it waits until then instead of using the wand. Leave it out for spells that don't show up.
min duration 1 With spell, the minutes left at which to use the wand again.
luck_item false For an item that raises your luck. It checks INFO and only uses the item while your luck is 0 or below, checking again every minute.

The wand's adjective and noun must match an entry in your gear:. If any don't, it lists them and stops.

When not to use them

wand_watcher_no_use_scripts:
  - alchemy
  - athletics
  - burgle
  - carve
  - craft
  - enchant
  - forge
  - get2
  - go2
  - pick
  - remedy
  - sew
  - shape
  - smelt
  - smith
  - tinker
  - workorders
wand_watcher_no_use_rooms:
  - 1900
  - Knife Clan, Triage
  - !ruby/regexp '/^(?:First )?Provincial Bank,/'
  - !ruby/regexp '/Carousel (?:Booth|Chamber)$/'
  - !ruby/regexp '/^(?:Shard, )?First Bank of Ilithi,?/'

Both lists above are the base.yaml defaults. If you set your own, it replaces the default, so copy any entries you want to keep.

Setting Purpose
wand_watcher_no_use_scripts It doesn't use wands while any of these scripts is running. go2 and burgle are always added.
wand_watcher_no_use_rooms It doesn't use wands in these rooms. Each entry is a room id, a room's full title without the brackets (Knife Clan, Triage, not just Triage), or a !ruby/regexp that matches part of the title.

While either applies, it checks again every 10 seconds.

Timing

wand_watcher_startup_delay: 10
wand_watcher_passive_delay: 60
Setting Default Purpose
wand_watcher_startup_delay 10 Seconds to wait after starting, before doing anything, so it doesn't add to the spam when your scripts autostart.
wand_watcher_passive_delay 60 Seconds between checks for wands that are ready.

Each wand's next use time is saved between runs and logins. A wand that's new to your list is used straight away, and one you've removed is forgotten. The reset argument clears all of them, so every wand is used straight away.

What a use does

There are no settings for these; this is what to expect.

  1. Pauses your other scripts. If it can't yet, it tries again every 30 seconds.
  2. If both your hands are full, lowers what's in your left hand to the ground, and picks it back up at the end.
  3. For each wand that's ready:
    • Gets the last one of that wand (second bloodwood branch with count: 2) from its container. Putting it back puts it in front, so the next use takes another one.
    • Uses it with its verb, and handles what happens (see the table below).
    • Puts it back.
  4. Lets your scripts carry on.
What happens What it does next
Your activation message Waits cooldown minutes.
The wand "remains inert" Puts it back and tries the next one, up to count. If none work, it tries again in half the cooldown.
The room won't allow it (a no-magic or silenced room, or similar) Says "Failed to activate due to room settings.", suggests the room id (or title) to add to wand_watcher_no_use_rooms, skips that room for the rest of this run, and tries again in a minute.
You're too injured, or hidden or invisible Says so and tries again in a minute.
Anything else, including no reply Says "Unrecognized error when trying to activate wand." and tries again in a minute. If this happens every time, check your activation message.

If it can't get the wand (wrong name, wrong count, or wrong container), it says "Could not find correct number of wands" and drops that wand for the rest of this run. When no wands are left, it says "No wands to check" and stops.

Argument Settings

Argument Purpose
number Seconds to wait before starting, instead of wand_watcher_startup_delay.
reset Forget every wand's next use time, so they're all used straight away.
once Check once, use any wands that are ready, then stop.

Usage

;wand-watcher

;wand-watcher reset

;wand-watcher once 0

Autostart

It's meant to run all the time. Add it to the autostarts: list in your setup YAML:

autostarts:
  - wand-watcher

or add it with Lich's autostart command: ;autostart add wand-watcher.

Don't put it in T2's t2_before_startup list: T2 waits for those scripts to finish, and wand-watcher keeps running.

Stabbity

;stabbity stops a running wand-watcher, and runs ;wand-watcher once 0 between fights instead.

Clone this wiki locally