Lich script repository: Difference between revisions

From Elanthipedia
Jump to navigation Jump to search
 
(28 intermediate revisions by the same user not shown)
Line 2,439: Line 2,439:
|description=Stabbity is designed for thieves, and relies on backstab and thrown weapons to kill things quickly. It's useful in invasions and events.
|description=Stabbity is designed for thieves, and relies on backstab and thrown weapons to kill things quickly. It's useful in invasions and events.
|usage=
|usage=
When run without a mode specified (e.g. <code>;stabbity</code>), stabbity will wield your weapon and hide, killing any mob in the room. If no mobs are present, it will wait in hiding for one to arrive.
When run without a mode specified (e.g. <code>;stabbity</code>), stabbity will wield your weapon and hide, killing any mob in the room. If no mobs are present, it will wait in hiding for one to arrive.


'''Example Configuration'''
'''Example Configuration'''
Line 2,462: Line 2,462:
* ''equip'': Wields your preferred weapon.^
* ''equip'': Wields your preferred weapon.^
* ''cleanup'': Sheathes your preferred weapon.^
* ''cleanup'': Sheathes your preferred weapon.^
* ''single'': Kills all mobs in the current room and exits. Does not wait for mob to arrive.^
* ''single'': Kills all mobs in the current room and exits. Does not wait for a mob to arrive.^
* ''arena'': Used to run the Dusk Ruin arena.}}^
* ''arena'': Used to run the Dusk Ruin arena.}}^
{{Lich setting|name=noloot|desc=Do not loot mobs when killed.}}
{{Lich setting|name=noloot|desc=Do not loot mobs when killed.}}
|settings=
|settings=
{{Lich setting|name=stabbity:eliminate|desc=True/False. Only used during arena. Will use krhi eliminate at the beginning of rounds 5/10/15/20/25. '''Only include if you are a thief with khri eliminate.'''}}^
{{Lich setting|name=stabbity:eliminate|desc=True/False. Only used during arena. Will use khri eliminate at the beginning of rounds 5/10/15/20/25. '''Only include if you are a thief with khri eliminate.'''}}^
{{Lich setting|name=stabbity:weapons:preferred|desc=The name of the weapon you wish to backstab with.}}^
{{Lich setting|name=stabbity:weapons:preferred|desc=The name of the weapon you wish to backstab with.}}^
{{Lich setting|name=stabbity:weapons:alternate|desc=The name of the weapon you wish to use for mobs defined in use_alternate_on.}}^
{{Lich setting|name=stabbity:weapons:alternate|desc=The name of the weapon you wish to use for mobs defined in use_alternate_on.}}^
{{Lich setting|name=stabbity:weapons:thrown|desc=The name of the weapon you wish to use for mobs defined in use_thrown_on. If this is left off, then it will never try thrown (useful for characters with passive abilities that can force flying thins to land - ex khri terrify).}}^
{{Lich setting|name=stabbity:weapons:thrown|desc=The name of the weapon you wish to use for mobs defined in use_thrown_on. If this is left off, then it will never try thrown (useful for characters with passive abilities that can force flying things to land -- e.g. khri terrify).}}^
{{Lich setting|name=stabbity:use_alternate_on|desc=List of mobs on which to use your alternate weapon.}}^
{{Lich setting|name=stabbity:use_alternate_on|desc=List of mobs on which to use your alternate weapon.}}^
{{Lich setting|name=stabbity:use_thrown_on|desc=List of mobs on which to use your thrown weapon.}}
{{Lich setting|name=stabbity:use_thrown_on|desc=List of mobs on which to use your thrown weapon.}}^
{{Lich setting|name=ignored_npcs|desc=List of mobs to never target, outside of arena mode.}}^
{{Lich setting|name=custom_loot_type|desc=Loot type/argument passed to the 'loot' command when looting a killed mob.}}
|uservars={{Lich setting|name=stabbity_debug|desc=Turns on debugging messages.}}
|uservars={{Lich setting|name=stabbity_debug|desc=Turns on debugging messages.}}
|children=
|children=wand-watcher
}}
}}


== stack-scrolls ==
== stack-scrolls ==
{{Lich script
{{Lich script
|description=Scroll-stacker management suite. Stacks loose scrolls from a container into your scroll stackers, retrieves single copies, reports inventory and statistics, and runs simulate-then-confirm maintenance passes (prune, consolidate, clean).
|description=Scroll stacker manager script that stores and retrieves scrolls using stackers.
|usage=
<pre>
;stack-scrolls [container] -- stack every scroll found in [container] into your stackers
;stack-scrolls -- display a flat list of all scrolls currently in your stackers
;stack-scrolls get [spell] -- pull one copy of [spell] (name or abbreviation) from your stackers
;stack-scrolls mana [type] -- list scrolls of a given mana type (lunar, holy, life, arcane, ap, elemental)
;stack-scrolls summary -- verbose overview of all stackers, including mana types
;stack-scrolls reset -- clear the cached stacker data and repopulate it from your actual stackers
;stack-scrolls clean [keep] [confirm] -- simulate (or, with confirm, execute) a consolidate-plus-cleanup pass; add keep to stow removed scrolls instead of trashing them
;stack-scrolls prune [confirm] -- simulate (or execute) removing scrolls not in keep_scrolls or exceeding your configured limits
;stack-scrolls consolidate [confirm] -- simulate (or execute) moving all scrolls into as few stackers as possible
</pre>
Scrolls are matched to spells by reading their label (or reading the scroll itself if unlabeled/glyph). Filtering is exact-match (case-insensitive) against a spell's full name or abbreviation: discard_scrolls always wins, an empty keep_scrolls keeps everything not discarded, and a non-empty keep_scrolls keeps only its matches. Excess scrolls that don't fit are stowed back in the source container by default, or trashed if trash_excess_scrolls is set.
'''Example Configuration'''
<pre>
stack_scrolls:
stackers:
- scroll.folio
- abyssal-black.codex
stacker_container: haversack
keep_scrolls: []
discard_scrolls: []
trash_excess_scrolls: false
max_scrolls_per_spell: 100
max_scrolls_per_slot: 125
log_statistics: false
</pre>
|args={{Lich setting|name=container|desc=Container to collect loose scrolls from and stack.}}^{{Lich setting|name=get|desc=Followed by a spell name/abbreviation. Pulls one copy of that spell from your stackers.}}^{{Lich setting|name=mana|desc=Followed by a mana type (lunar, holy, life, arcane, ap, elemental). Lists scrolls of that mana type.}}^{{Lich setting|name=summary|desc=Displays a verbose overview of all stackers, including mana types.}}^{{Lich setting|name=reset|desc=Clears the cached stacker data and repopulates it.}}^{{Lich setting|name=clean|desc=Optionally followed by keep and/or confirm. Consolidates and removes unwanted scrolls; simulates unless confirm is given.}}^{{Lich setting|name=prune|desc=Optionally followed by confirm. Removes scrolls not in keep_scrolls or exceeding configured limits; simulates unless confirm is given.}}^{{Lich setting|name=consolidate|desc=Optionally followed by confirm. Moves all scrolls into as few stackers as possible; simulates unless confirm is given.}}
|settings={{Lich setting|name=stack_scrolls:stackers|desc=Required. Array of your stacker item names, e.g. scroll.folio.}}^{{Lich setting|name=stack_scrolls:stacker_container|desc=Container the stackers live in.}}^{{Lich setting|name=stack_scrolls:keep_scrolls|desc=Whitelist of spell names/abbreviations to keep. Empty means keep all (except discarded).}}^{{Lich setting|name=stack_scrolls:discard_scrolls|desc=Blacklist of spell names/abbreviations to trash. Takes priority over keep_scrolls.}}^{{Lich setting|name=stack_scrolls:trash_excess_scrolls|desc=Boolean. Trash (true) or stow (false, default) excess scrolls that won't fit in the stackers.}}^{{Lich setting|name=stack_scrolls:max_scrolls_per_spell|desc=Optional global cap on total copies of any one spell across all stackers.}}^{{Lich setting|name=stack_scrolls:max_scrolls_per_slot|desc=Optional cap on copies within a single section/slot (game max is 125).}}^{{Lich setting|name=stack_scrolls:log_statistics|desc=Boolean. Write a per-run statistics log file. Defaults to false.}}^{{Lich setting|name=worn_trashcan|desc=Shared top-level setting (not nested under stack_scrolls). Worn trashcan used to dispose of trashed scrolls.}}^{{Lich setting|name=worn_trashcan_verb|desc=Shared top-level setting (not nested under stack_scrolls). Verb used with the worn trashcan.}}
|uservars={{Lich setting|name=UserVars.stackers|desc=Cached map of each stacker's contents, built by scanning your physical stackers. Persists between runs; cleared automatically by maintenance commands or manually via the reset argument.}}
|children=
}}
}}


== status-monitor ==
== status-monitor ==

{{Lich script
{{Lich script
|description=Informs user of high-frequency game output and characters current health via a small window. Useful for keeping tabs on multiple characters.
|description=Watches for high-frequency or spammy game output (e.g. getting stuck repeating a failed action) and alerts you, while optionally showing a small window with the character's current health. Useful for keeping tabs on multiple characters at once.
|usage=Trust status-monitor, then run it. Requires the ruby-gtk bindings unless run with nowindow. It filters out routine noise (room descriptions, known room players/NPCs, prompts, etc.) and tracks lines it hasn't seen recently, updating a health percentage indicator in the window. If it detects a burst of identical or highly similar lines within a short window, it beeps, optionally sends a canned response, echoes the offending line, notifies your registered Slackbot, and can exit the game session.
|usage=Trust status monitor then run it.
|args={{Lich setting|name=debug|desc=Optional. Turns on debugging messages and logs raw/filtered lines plus the current room player list to a status-monitor-debug file.}}^{{Lich setting|name=nowindow|desc=Optional. Runs without the GTK status window, just the line-filtering/spam-detection loop. Same effect as the status_monitor_no_window setting.}}
|args={{Lich setting|name=debug|desc=Turns on debugging messages.}}
|settings={{Lich setting|name=quit_on_status_warning|desc=Boolean. Exits the game session (fput exit) when a spam/repeat alert triggers.}}^{{Lich setting|name=unique_line_threshold|desc=Number of times an identical line must repeat within the recent history buffer to trigger an alert.}}^{{Lich setting|name=line_frequency_threshold|desc=Number of similar (but not identical) lines seen in a short window that triggers an alert.}}^{{Lich setting|name=line_similarity_percentage|desc=How similar (by Levenshtein distance) two lines must be to count toward the frequency threshold.}}^{{Lich setting|name=status_monitor_respond|desc=Boolean. If true, sends a canned response (e.g. "'Hmmm?") when a spam/repeat alert triggers.}}^{{Lich setting|name=status_monitor_no_window|desc=Boolean. If true, runs without the GTK status window, same as the nowindow argument.}}^{{Lich setting|name=slack_username|desc=Slackbot username to register for spam-alert notifications.}}
|settings=
|uservars={{Lich setting|name=UserVars.npcs|desc=List of known NPC names; lines mentioning them are excluded from being treated as new/unseen messages.}}^{{Lich setting|name=UserVars.players_online|desc=List of players online; lines mentioning them (other than yourself) are excluded from being treated as new/unseen messages.}}
|uservars=
|children=
|children=
}}
}}
Line 2,494: Line 2,526:
== steal ==
== steal ==
{{Lich script
{{Lich script
|description=Automates stealing runs from shops/rooms and opportunistic NPCs, tracking your effective Thievery skill against each target's known difficulty to focus on items that teach well, optionally hiding to steal, wearing a dedicated stealing outfit, and binning (or trashing) stolen goods.
|description=
|usage=
|usage=
Without arguments, the script iterates through your stealing_towns, targeting stocked items whose difficulty is appropriate for your current Thievery skill (favoring the best learning experience), plus any ready NPC targets (beggar, minstrel, veteran) if npc_stealing_attempt_count is set above 0. New items encountered are added interactively (a ";send yes/no" or town-number prompt) to base-stealing.yaml along with their room/town, and after each attempt the script narrows that target's tracked difficulty range based on the game's learning message.
|args=

|settings=^{{Lich setting|name=hide_to_steal|desc=set to false if you do not wish to hide to steal.}}^{{Lich setting|name=bin_stolen|desc=set to true for Thieves who wish to bin stolen goods.}}^{{Lich setting|name=stealing_bag|desc=storage bag for stolen goods if bin_stolen: true}}^{{Lich setting|name=slow_bin_speed|desc=set to true to bin items slower. Resolves type-ahead issue for Genie users.}}^{{Lich setting|name=steal_past_mindlock|desc=set to true if you wish to continue stealing after Thievery is locked.}}^{{Lich setting|name=dont_steal_list|desc=list items by id# identified in '''base-stealing.yaml''' to skip these items when stealing.}}^{{Lich setting|name=stealing_buffs|desc=list of buffs to use before starting stealing run.}}^{{Lich setting|name=stealing_high_acceptable_count|desc=.}}^{{Lich setting|name=stealing_low_acceptable_count|desc=.}}^{{Lich setting|name=npc_stealing_attempt_count|desc=Numeric amount of stealing attempts on NPCs (minstrel, veteran, etc.)}}^{{Lich setting|name=stealing_options|desc=list of stealable items in base-stealing.yaml}}^
Call with an item and its location to steal one specific item instead: <code>;steal [item] [container]</code>, e.g. <code>;steal necklace in catalog</code>.
|uservars=

|children=
Stealing stops automatically once your Thievery experience reaches mindlock, unless steal_past_mindlock is set.
|args={{Lich setting|name=item|desc=Optional. Name of a specific item to steal.}}^{{Lich setting|name=container|desc=Optional, used with item. Where the item is to be stolen from, e.g. 'in catalog' or 'on counter'.}}
|settings={{Lich setting|name=hometown|desc=Used to determine the thief bin location for binning stolen goods, unless force_bin_town is set.}}^{{Lich setting|name=force_bin_town|desc=Overrides hometown for locating the thief bin.}}^{{Lich setting|name=stealing_towns|desc=List of towns to steal in, and search order when running without arguments.}}^{{Lich setting|name=hide_to_steal|desc=Set to false if you do not wish to hide to steal.}}^{{Lich setting|name=bin_stolen|desc=Set to true for Thieves who wish to bin stolen goods.}}^{{Lich setting|name=stealing_bag|desc=Storage bag for stolen goods if bin_stolen: true.}}^{{Lich setting|name=slow_bin_speed|desc=Set to true to bin items slower. Resolves a type-ahead issue for Genie users.}}^{{Lich setting|name=steal_past_mindlock|desc=Set to true if you wish to continue stealing after Thievery is locked.}}^{{Lich setting|name=dont_steal_list|desc=List items by id# (identified in base-stealing.yaml) to skip when stealing.}}^{{Lich setting|name=stealing_buffs|desc=Legacy hash of buffs (khri/spells) to use before starting a stealing run; superseded by the waggle_sets['steal'] set if defined there.}}^{{Lich setting|name=stealing_high_acceptable_count|desc=Max re-attempts on an item whose difficulty is on the harder half of your 'acceptable' range.}}^{{Lich setting|name=stealing_low_acceptable_count|desc=Max re-attempts on an item whose difficulty is on the easier half of your 'acceptable' range.}}^{{Lich setting|name=npc_stealing_attempt_count|desc=Number of stealing attempts to make on ready NPC targets (minstrel, veteran, beggar). 0 disables NPC stealing.}}
|uservars={{Lich setting|name=UserVars.stealing_timers|desc=Hash of per-target (room or NPC) cooldown timestamps, used to avoid re-attempting a target too soon.}}^{{Lich setting|name=UserVars.thievery_debug|desc=Set to enable debug messaging about target selection and difficulty updates.}}
|children=jail-buddy^find^performance
}}
}}


== study-art ==
== study-art ==
{{Lich script
{{Lich script
|description=Walks through the Crossing art gallery and appraises each piece on display. Trains scholarship and appraisal.
|description=Walks through art rooms (as defined in base-art.yaml) and studies each piece on display, training Scholarship and/or Appraisal.
|usage=Run it, optionally passing 'appraisal' or 'scholarship' to choose which skill's experience should stop the run (defaults to scholarship). It walks to each configured art room and studies each listed piece there, pausing briefly after each to let other background scripts (like performance or sanowret) act, until the chosen skill reaches 30 experience or every piece has been studied.
|usage=Just run it. e.g. <code>;study-art</code>
|args={{Lich setting|name=skill|desc=Optional. Which skill's experience to watch for stopping: appraisal or scholarship. Defaults to scholarship.}}
|args=
|settings={{Lich setting|name=performance_pause|desc=Seconds to pause before starting (when not run from crossing-training), giving a previously running performance script time to finish shutting down.}}
|settings=
|uservars=
|uservars=
|children=
|children=performance
}}
}}


== su-helmas ==
== su-helmas ==
{{Lich script
{{Lich script
|description=Completes the Su Helmas short catacombs maze (the guide empath's non-combat task line): joins the empath, redeeming a contract to join if needed, then responds to each task prompt as it's flagged (search, sit, meditate, climb, dodge, crawl, break/invoke the barrier, smite/touch the seed), stowing awarded loot and rejoining the guide to continue, until the maze is completed.
|description=Runs catacombs tasks (empath) until you're out of tickets or out of room in your bag
|usage=Just run it while an empath wreathed in violet robes is present in the catacombs. If you don't already have a contract redeemed, set redeem_contract to true and keep spare contracts in contract_container so the script can redeem one and rejoin automatically. If a weapon is configured, it's wielded for the duration (needed to break the barrier task).
|usage=Just run it
|args=
|args=
|settings={{Lich setting|name=suhelmas:catacombs:loot_container|desc=Bag to store your loot.}}^{{Lich setting|name=suhelmas:catacombs:redeem_contract|desc=True will redeem a contract from contract_container (and continue to do so as needed) if you don't currently have one redeemed to join the empath. False only proceeds if you've already redeemed a contract, exiting otherwise.}}^{{Lich setting|name=suhelmas:catacombs:contract_container|desc=Container where your contracts are stored.}}^{{Lich setting|name=suhelmas:catacombs:weapon|desc=Weapon to wield for the tasks. Any melee weapon will do.}}
|settings=^{{Lich setting|name=loot_container|desc=Bag to store your loot}}^
{{Lich setting|name=redeem_contract|desc=true will redeem a contract if you don't have one redeemed, and continue to do so until you're out. False only runs if you've redeemed a contract}}^
{{Lich setting|name=contract_container|desc=container where your contracts are stored.}}^
{{Lich setting|name=weapon|desc=weapon to use for the tasks. Any melee weapon will do}}
<pre>
<pre>
suhelmas:
suhelmas:
Line 2,527: Line 2,561:
redeem_contract: true
redeem_contract: true
contract_container: haversack
contract_container: haversack
weapon: scimitar</pre>
weapon: scimitar
</pre>
|uservars=
|children=
}}
}}


== summoning ==
== summoning ==
{{Lich script
{{Lich script
|description=Trains summoning via summoning and breaking a magical weapon. Summons admittance to build up charges to summon a weapon. [[Warrior Mages]] must have already {{com|align}}ed to an element.
|description=Trains Summoning by repeatedly summoning and breaking a magical weapon, channeling any leftover elemental charge into damage focus. [[Warrior Mages]] must have already {{com|align}}ed to an element.
|usage=Just run it, typically called from crossing-training. It repeatedly summons and breaks a weapon (using 'pathway focus damage' with any remaining charge at circle 4+) until your Summoning experience increases by the configured increment or reaches the shared max threshold, whichever comes first.
|settings={{Lich setting|name=summoning_target_increment|desc=The desired number of mind states to increase by. Respects crossing_training_max_threshold as an upper threshold.}}
|args=
|settings={{Lich setting|name=summoning_target_increment|desc=The desired number of mind states to increase Summoning by this run. Respects crossing_training_max_threshold as an upper limit.}}^{{Lich setting|name=crossing_training_max_threshold|desc=Shared upper mind-state ceiling; training stops here even if the target increment hasn't been reached.}}
|uservars=
|children=
}}
}}


== t2 ==
== t2 ==
{{Lich script
{{Lich script
|description=An alternative trainer script that runs sub-scripts to train skills based on thresholds and conditions. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/T2-Tutorial
|description=An alternative trainer script that runs sub-scripts to train skills based on configurable thresholds, cooldowns, and conditions. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/T2-Tutorial
|usage=Run the script, optionally with the nodelay argument to skip the startup delay. On each pass it walks your training_list in order, skipping any skill whose experience is already at or above its start threshold, still on cooldown (per exp_timers), or requires moons that aren't currently visible; the first eligible entry has its scripts run (with an optional burgle first, if enabled), then the loop repeats. If nothing is eligible, it sleeps and warns you to check the T2 tutorial. While running, control it via aliases/echo commands: <code>;e $T2.shutdown</code> (stop cleanly after the current pass), <code>;e $T2.noshutdown</code> (cancel a pending shutdown), and <code>;e $T2.reload_settings</code> (reload training_list from your YAML without restarting).
|usage=Run the script, optionally with the nodelay argument to skip startup delays.
|args={{Lich setting
|args={{Lich setting|name=nodelay|desc=Optional. Bypasses t2_startup_delay.}}
|settings={{Lich setting|name=t2_startup_delay|desc=Seconds to wait (measured from your session's start time) before beginning training.}}^{{Lich setting|name=t2_skip_awaken|desc=If true, skips the 'awaken' command at startup.}}^{{Lich setting|name=t2_avoids|desc=Array of {type:, state:} hashes; issues 'avoid TYPE' when state is false or 'avoid !TYPE' when state is true.}}^{{Lich setting|name=t2_burgle_every_block|desc=If true, runs 'burgle start' before each training block.}}^{{Lich setting|name=t2_before_startup|desc=Array of "script arg1 arg2" strings to run once before training begins.}}^{{Lich setting|name=t2_after_shutdown|desc=Array of "script arg1 arg2" strings to run after a controlled shutdown.}}^{{Lich setting|name=training_list|desc=Array of trainables. Each entry has skill (a name, or array of names requiring all to be under threshold), start (experience threshold to skip below), an optional name for status messages, scripts (array of "script arg1 arg2" strings to run), and an optional moons flag to skip the entry when no moons are visible.}}^{{Lich setting|name=exp_timers|desc=Hash of skill => cooldown seconds; a skill won't be retrained until this long has passed since it was last trained.}}^{{Lich setting|name=t2_no_kill|desc=Script name (or list of names) to spare from being stopped on shutdown; use the keyword ALL to spare every script T2 launched.}}^{{Lich setting|name=cyclic_no_release|desc=Shared top-level setting; cyclic spells listed here are not released when T2 shuts down.}}
|name=nodelay|desc=Optional argument to bypass t2_startup_delay.}}
<pre>
|settings=^{{Lich setting
t2_startup_delay: 30
|name=t2_startup_delay|desc=Delay (in seconds) before starting training.}}^ {{Lich setting
t2_skip_awaken: false
|name=t2_skip_awaken|desc=If true, skips the awaken command at startup.}}^ {{Lich setting
t2_avoids:
|name=t2_avoids|desc=Configures avoid settings.}}^ {{Lich setting
- type: join
|name=t2_burgle_every_block|desc=If true, runs the burgle script at every training cycle.}}^ {{Lich setting
state: on
|name=t2_before_startup|desc=Array of scripts or actions to execute before training begins.}}^ {{Lich setting
- type: hold
|name=t2_after_shutdown|desc=Array of scripts or actions to execute during controlled shutdown.}}^ {{Lich setting
state: on
|name=training_list|desc=Array of training tasks with thresholds, scripts, and conditions.}}^ {{Lich setting
- type: drag
|name=exp_timers|desc=Hash defining cooldowns for skills.}}
state: on
<pre>t2: t2_startup_delay: 30 t2_skip_awaken: false t2_avoids: - type: join state: on - type: hold state: on - type: drag state: on t2_burgle_every_block: true t2_before_startup: - preparation_script t2_after_shutdown: - cleanup_script training_list: - skill: arcana start: 20 name: Magic Training scripts: - magic-practice-script - skill: hunting start: 15 scripts: - hunt-script exp_timers: arcana: 60 hunting: 120 </pre>
t2_burgle_every_block: true
t2_before_startup:
- preparation_script
t2_after_shutdown:
- cleanup_script
training_list:
- skill: arcana
start: 20
name: Magic Training
scripts:
- magic-practice-script
- skill: hunting
start: 15
scripts:
- hunt-script
exp_timers:
arcana: 60
hunting: 120
</pre>
|uservars={{Lich setting|name=UserVars.t2_timers|desc=Hash of skill => last-trained timestamp, persisted between runs to enforce exp_timers cooldowns.}}
|children=burgle
}}
}}


Line 2,557: Line 2,619:
{{Lich script
{{Lich script
|description=Completes foraging tasks given by Mags in the Crossing, and the flower peddler in Shard, in order to train Trading.
|description=Completes foraging tasks given by Mags in the Crossing, and the flower peddler in Shard, in order to train Trading.
|usage= Start the script. If using T2 and especially while in Shard, consider setting never_wait = true and using a 30 second T2 timer for Trading (to avoid sitting around on cooldown too often, waiting for the right task type).
|usage=Start the script. Defaults to your hometown; pass "crossing" or "shard" to force tasks in a specific area, or "resume" to pick up a task already in progress (from your journal) instead of canceling it. If using T2 and especially while in Shard, consider setting never_wait: true and using a 30 second T2 timer for Trading (to avoid sitting around on cooldown too often, waiting for the right task type).
|args= "Crossing" or "Shard" to force tasks in a specific area.
|args={{Lich setting|name=town|desc=Optional. "crossing" or "shard" to force tasks in a specific area. Defaults to your hometown.}}^{{Lich setting|name=resume|desc=Optional. Picks up a task already in progress instead of canceling it.}}
|settings={{Lich setting|name=container|desc=Optional. Where to temporarily store gathered task items. Default is <code>backpack</code>}}^{{Lich setting|name=task_boosts|desc=<code>true</code> or <code>false</code>. Optional. Whether or not to use BOOST TASK in order to reduce task cooldowns.}}^{{Lich setting|name=collect|desc=<code>true</code> or <code>false</code>. Optional. Use COLLECT for large tasks instead of FORAGE (only use if you know you can COLLECT reliably for all tasks.}}^{{Lich setting|name=trading_limit|desc=Optional. Target Trading mindstates before the script will exit.}}^{{Lich setting|name=never_wait|desc=<code>true</code> or <code>false</code>. Optional. Exit as soon as a task cooldown is encountered.}}^{{Lich setting|name=wait_in_place|desc=<code>true</code> or <code>false</code>. Optional. If waiting for a cooldown, do it by collecting rocks at the task giver. If false, the script will run outdoorsmanship.lic at your outdoors_room or safe_room.}}^{{Lich setting|name=debug|desc=<code>true</code> or <code>false</code>. Optional. Show verbose debug messaging}}
|settings={{Lich setting|name=task_forage_settings:container|desc=Optional. Where to temporarily store gathered task items. Falls back to the top-level forage_container setting, then 'backpack'.}}^{{Lich setting|name=task_forage_settings:task_boosts|desc=<code>true</code> or <code>false</code>. Optional. Whether or not to use BOOST TASK in order to reduce task cooldowns.}}^{{Lich setting|name=task_forage_settings:collect|desc=<code>true</code> or <code>false</code>. Optional. Use COLLECT for large tasks instead of FORAGE (only use if you know you can COLLECT reliably for all tasks).}}^{{Lich setting|name=task_forage_settings:trading_limit|desc=Optional. Target Trading mindstate before the script will exit. Defaults to 30.}}^{{Lich setting|name=task_forage_settings:never_wait|desc=<code>true</code> or <code>false</code>. Optional. Exit as soon as a task cooldown is encountered.}}^{{Lich setting|name=task_forage_settings:wait_in_place|desc=<code>true</code> or <code>false</code>. Optional. If waiting for a cooldown, do it by collecting rocks at the task giver. If false, the script will run outdoorsmanship.lic at your outdoors_room or safe_room instead.}}^{{Lich setting|name=task_forage_settings:debug|desc=<code>true</code> or <code>false</code>. Optional. Show verbose debug messaging.}}^{{Lich setting|name=task_forage_settings:forage_locations|desc=Optional. Array of {item:, rooms:} entries merged into (or overriding) base-forage.yaml. Set rooms: [] for an item to permanently blacklist it.}}^{{Lich setting|name=hometown|desc=Used as the default task town when no town argument is given.}}^{{Lich setting|name=outdoors_room|desc=Room to walk to for running outdoorsmanship.lic while waiting, used when wait_in_place is false. Falls back to safe_room if unset.}}^{{Lich setting|name=safe_room|desc=Fallback room for outdoorsmanship.lic if outdoors_room is unset.}}^{{Lich setting|name=forage_container|desc=Top-level fallback container setting, used if task_forage_settings:container is unset.}}


Example:
Example:
Line 2,572: Line 2,634:
# Show verbose debug messaging
# Show verbose debug messaging
debug: false</pre>
debug: false</pre>
|uservars= {{Lich setting|name=task_forage|desc=Tracks wandering task givers' last known locations, and if you have recently failed collecting an item. Ex: <code>task_forage: "item_failures"=>"", "npcs"=> "peddler"=>2567</code>}}
|uservars={{Lich setting|name=task_forage|desc=Tracks wandering task givers' last known locations, and if you have recently failed collecting an item. Ex: <code>task_forage: "item_failures"=>"", "npcs"=> "peddler"=>2567</code>}}
|children=find, outdoorsmanship
}}
}}


Line 2,578: Line 2,641:
{{Lich script
{{Lich script
|description=Manages the automated usage of the biomechanical tarantula, a gift handed out for patrons of Hollow Eve 432.
|description=Manages the automated usage of the biomechanical tarantula, a gift handed out for patrons of Hollow Eve 432.
|usage=Run <code>;tarantula</code> after adjusting YAML settings as desired. Can be added to startup. The script watches for skills near max-mindstate to sacrifice for their bonus, with different behavior depending on if you're in combat or not.
|usage=Run <code>;tarantula</code> after adjusting YAML settings as desired. Can be added to startup. The script watches for skills near max-mindstate to sacrifice for their bonus, with different behavior depending on if you're in combat or not.
|args=
|args=
|settings={{Lich setting|name=tarantula_startup_delay|desc=Number of seconds to wait after first starting before it will eat skills. Useful when tarantula is added to autostarts, so that it doesn't eat skills on first login, before login drain.}}^{{Lich setting|name=tarantula_noun|desc=Change if you've had a tarantula alteration or if you bought the harvester spider at 2020 Corn Maze. Use both the adjective and noun.}}^{{Lich setting|name=tarantula_debug|desc=Set true if you wish to see debug messages.}}^{{Lich setting|name=tarantula_excluded_skills|desc=A list of skills never to sacrifice to the tarantula.}}^{{Lich setting|name=tarantula_skip_alternate|desc=Set true to skip sacrificing an alternate (non-prioritized) skill entirely when none of your prioritized skills are available.}}^{{Lich setting|name=tarantula_no_use_scripts|desc=A list of scripts defined by you, during which the tarantula will not activate.}}^{{Lich setting|name=tarantula|desc=A list of skills, organized by skillset and by whether you want them sacrificed in and/or out of combat as defined by whether combat-trainer or hunting-buddy is running. These are the prioritized choices, however ;tarantula will choose other full skills in that sphere if none of its prioritized skills are available, unless they are listed in <code>tarantula_excluded_skills</code>
|settings=^{{Lich setting|name=tarantula_startup_delay|desc=Number of seconds to wait after first starting before it will eat skills. Useful when tarantula is added to autostarts, so that it doesn't eat skills on first login, before login drain.}}^
{{Lich setting|name=tarantula_noun|desc=Change if you've had a tarantula alteration or if you bought the harvester spider at 2020 Corn Maze. Use both the adjective and noun.}}^
{{Lich setting|name=tarantula_debug|desc=Set true if you wish to see debug messages}}^
{{Lich setting|name=tarantula_excluded_skills|desc=A list of skills never to sacrifice to the tarantula.}}^
{{Lich setting|name=tarantula_no_use_scripts|desc=A list of scripts defined by you, during which the tarantula will not activate.}}^
{{Lich setting|name=tarantula|desc=A list of skills, organized by skillset and by whether you want them sacrificed in and/or out of combat as defined by whether combat-trainer is running. These are the prioritized choices, however ;tarantula will choose other full skills in that sphere if none of its prioritized skills are available, unless they are listed in <code>tarantula_excluded_skills</code>


<pre>
<pre>
Line 2,635: Line 2,693:


</pre>
</pre>
}}

}}^
|uservars={{Lich setting|name=tarantula_last_use|desc=The last time the tarantula was sacrificed to.}}^{{Lich setting|name=tarantula_last_skillset|desc=The last sphere sacrificed to, since the tarantula can't be used on the same sphere twice in a row.}}
|uservars={{Lich setting|name=tarantula_last_use|desc=The last time the tarantula was sacrificed to.}}^{{Lich setting|name=tarantula_last_skillset|desc=The last sphere sacrificed to, since the tarantula can't be used on the same sphere twice in a row.}}
|children=
|children=
Line 2,643: Line 2,700:
== tendme ==
== tendme ==
{{Lich script
{{Lich script
|description=Automatic wound tender for self. On start, checks {{com|health}} for bleeding wounds and tends them, then watches for messages to unbind or retend wounds.
|description=Automatic wound tender for self. On start, checks {{com|health}} for lodged items, parasites, and bleeding wounds and tends them once. With the monitor argument, it stays running afterward, watching for messages indicating a wound needs retending or a new item has lodged, and tends those as they occur.
|usage=Run <code>;tendme</code> to tend once and exit, or <code>;tendme monitor</code> to keep it running in the background. Add train to also rewrap otherwise-fine wound bindings for First Aid experience while you're under 30 experience in that skill.
|usage=
|args={{Lich setting|name=train|desc=If present, unwrap and rebind wounds for optimum learning.}}
|args={{Lich setting|name=train|desc=Optional. If present, unwrap and rebind wounds for optimum First Aid learning (only while monitoring, and only under 30 First Aid experience).}}^{{Lich setting|name=monitor|desc=Optional. Run in background to keep bleeders/lodged wounds tended as they occur.}}
|settings={{Lich setting|name=worn_trashcan|desc=Used to dispose of an item (e.g. a dislodged bolt or arrow) removed from a wound while tending, if it's still in hand.}}^{{Lich setting|name=worn_trashcan_verb|desc=Verb used with the worn trashcan when disposing of a dislodged item.}}
|settings=
|uservars=
|uservars=
|children=
|children=
Line 2,653: Line 2,710:
== tendother ==
== tendother ==
{{Lich script
{{Lich script
|description=Automatic wound tender for another player. On start, looks for bleeding wounds and tends them, then watches for messages to unbind or retend wounds.
|description=Automatic wound tender for another player in your room. On start, looks up their bleeding wounds and tends them, then watches for messages indicating their bandages have failed and retends as needed. Runs indefinitely.
|usage=Call the script with the target player's name (a partial match against players in the room is accepted). It immediately checks for and binds any open bleeding wounds, then loops, watching for bandage-failure messages for that player and retending whenever one occurs.
|usage=
|args={{Lich setting|name=player|desc=Name of the player to tend.}}
|args={{Lich setting|name=player|desc=Name (or partial name) of the player to tend.}}
|settings=
|settings=
|uservars=
|uservars=
Line 2,663: Line 2,720:
== tessera ==
== tessera ==
{{Lich script
{{Lich script
|description=Uses the Tessera item every 6 minutes, 15 second (default). Runs in the background and handles safe pausing and unpausing running scripts.
|description=Uses the Tessera item periodically (every 6 minutes, 15 seconds by default) to train Trading. Runs in the background and handles safe pausing and unpausing of other running scripts.
|usage=Just run it. Every 20 seconds it checks whether conditions are right to use the tessera -- not hidden, not invisible, off cooldown, hands free (or already holding the tessera), not in a disallowed room, no disallowed script running, and Trading experience still below the configured threshold -- and if so, retreats, retrieves the tessera from storage, asks it about invest, then stows it and resets the cooldown. If the tessera can't be found at all, the script exits.
|usage= Will attempt to ask retrieve the character's Tessera by asking it about invest. The script manages the handling of the item to and from storage container and pauses/unpauses scripts.
|args= None
|args=
|settings={{Lich setting|name=tessera_noun|desc=Item noun. (Default = Tessera).}}^{{Lich setting|name=tessera_retry_interval|desc=Interval in seconds to retry asking the Tessera about invest. (Default = 375).}}^{{Lich setting|name=tessera_startup_delay|desc=Startup delay in seconds Tessera script. Purpose is to avoid other startup conflicts. (Default = 15).}}^{{Lich setting|name=tessera_no_use_scripts|desc=List of scripts that when running delay or pause the processing of the Character's Tessera attempt.}}^{{Lich setting|name=tessera_no_use_rooms|desc=Add room title to the regex to avoid using the Tessera if in a particular room.}}^{{Lich setting|name=tessera_mindstates|desc=The Trading mindstate threshold below which (or equal to) you will use your tessera. Like a T2 start #, you will only use your tessera if your Trading mindstate is less than this number. (Default=3)}}
|settings={{Lich setting|name=tessera_noun|desc=Item noun. (Default = Tessera).}}^{{Lich setting|name=tessera_retry_interval|desc=Interval in seconds to retry asking the Tessera about invest. (Default = 375).}}^{{Lich setting|name=tessera_startup_delay|desc=Startup delay in seconds for the Tessera script. Purpose is to avoid other startup conflicts. (Default = 15).}}^{{Lich setting|name=tessera_no_use_scripts|desc=List of scripts that, when running, delay or pause use of the Tessera.}}^{{Lich setting|name=tessera_no_use_rooms|desc=List of room titles (or room IDs) to avoid using the Tessera in.}}^{{Lich setting|name=tessera_mindstates|desc=The Trading mindstate threshold below which (or equal to) you will use your tessera. Like a T2 start #, you will only use your tessera if your Trading mindstate is less than this number. (Default=3).}}
|uservars= {{Lich setting|name=tessera_last_use|desc=Keeps track of the last time asking the Tessera about invest was attempted. Ex: tessera_last_use: 2022-03-21 22:48:29 -0700.}}
|uservars={{Lich setting|name=tessera_last_use|desc=Keeps track of the last time asking the Tessera about invest was attempted. Ex: tessera_last_use: 2022-03-21 22:48:29 -0700.}}
|children=
|children=
}}
}}
Line 2,673: Line 2,730:
== textsubs ==
== textsubs ==
{{Lich script
{{Lich script
|description=A downstream text-substitution engine with an extensive built-in library of default subs (numeric quality ratings appended to appraisal/combat/crafting/performance/mining messages, spell and spellbook Elanthipedia hyperlinks, social and divine outrage level annotations, herb body-part/wound-type hints, various guild-specific unlocks, coin comma-grouping, and more), plus support for adding your own custom substitutions.
|description=Provides in-game text substitution capabilities; comes with many defaults (e.g. appraisal and combat messages).
|usage=Just run it, typically at login/autostart. It hooks the downstream game text and rewrites anything matching its accumulated substitution table -- most of which is built in automatically based on your guild and the settings below. You can add your own substitutions at runtime with <code><nowiki>TextSubs.add('^(\s+)no (puncture|slice|impact|fire|cold|electric) damage','\1no (0/27) \2 damage')</nowiki></code>, or clear everything (including the built-ins) with <code>TextSubs.clear()</code>. If you also run spellmonitor.lic, start it before textsubs.lic (or textsubs will break buff-watcher's detection of active spells) -- ensure textsubs is last on your autostart list, or fix it in-game with <code>;k textsubs</code> then <code>;textsubs</code>.
|usage=
Example of adding a sub: <code><nowiki>TextSubs.add('^(\s+)no (puncture|slice|impact|fire|cold|electric) damage','\1no (0/27) \2 damage')</nowiki></code>

Clear out all stored subs with <code>TextSubs.clear()</code>
|args=
|args=
|settings={{Lich setting|name=private_textsubs|desc=Hash of your own pattern => replacement pairs, applied at startup in addition to the built-in subs.}}^{{Lich setting|name=integrate_shit_list_with_textsubs|desc=Boolean. Tags players listed in your character's shit list file with "(SL)" wherever their name appears.}}^{{Lich setting|name=textsubs_spell_links|desc=Boolean. Hyperlinks guild spell training, magic feats, spellbooks, and known spells (in column-formatted spell lists and your Active Spells window) to their Elanthipedia pages.}}^{{Lich setting|name=herb_textsubs|desc=Boolean. Appends a body-part/wound-type hint to raw herb names.}}^{{Lich setting|name=textsubs_use_plat_grouping|desc=Boolean. Adjusts where thousand-separator commas are inserted in large coin totals when platinum is also shown alongside other coin types.}}
|settings=
|uservars=
|uservars=
|children=
|children=
Line 2,686: Line 2,740:
== theurgy ==
== theurgy ==
{{Lich script
{{Lich script
|description=Trains Theurgy by working through a rotating list of devotion rituals (prayer, altar/prayer mat ceremonies, tithing, bathing, bead carving, etc.) to build up devotion, then performing your configured communes (Eluned, Tamsine, Truffenyi, Kertigen) once devotion allows, automatically restocking consumable supplies as needed.
|description=train theurgy by working up devotion and doing communes
|usage=Just run it. Recommended -- Eluned (for cheap holy water). On start it prays to your favored god (or Meraud by default), restocks any needed ritual/commune supplies including holy water, then alternates performing available communes and rituals until either your rituals are exhausted, your Theurgy experience reaches theurgy_exp_threshold (if set), or the devotion cooldown blocks further communing. It finishes by rolling up your prayer mat (if used) and issuing a final commune.
|usage= Recommended - Eluned (holy water)
|args=
|args=
|settings={{Lich setting|name=theurgy_supply_container|desc=Container for storing wine, flint, and incense.}}^{{Lich setting|name=water_holder|desc=Vessel that you store holy water in.}}^{{Lich setting|name=flint_lighter|desc=Blade for lighting flint.}}^{{Lich setting|name=immortal_aspect|desc=for bead carving/meditation (must be aspect of god you last got a favor from).}}^{{Lich setting|name=theurgy_prayer_mat_room|desc=Room in which to use your prayer mat.
|settings={{Lich setting|name=hometown|desc=Used to look up theurgy room/shop data for your town, unless fang_cove_override_town is set.}}^{{Lich setting|name=fang_cove_override_town|desc=Overrides hometown for theurgy purposes.}}^{{Lich setting|name=safe_room|desc=Room used for the "embarrass myself" ritual (invoking golden parchment).}}^{{Lich setting|name=favor_god|desc=Name of the god to pray to at the start of each run. Defaults to Meraud if unset.}}^{{Lich setting|name=theurgy_exp_threshold|desc=Optional. Theurgy experience to stop at. If unset or 0, the script runs until it's out of rituals to perform.}}^{{Lich setting|name=theurgy_supply_container|desc=Container for storing wine, flint, incense, and other ritual supplies.}}^{{Lich setting|name=water_holder|desc=Vessel that you store holy water in.}}^{{Lich setting|name=flint_lighter|desc=Blade for lighting flint.}}^{{Lich setting|name=immortal_aspect|desc=For bead carving/meditation (must be aspect of the god you last got a favor from).}}^{{Lich setting|name=crafting_container|desc=Container used for bead-carving crafting items.}}^{{Lich setting|name=crafting_items_in_container|desc=List of crafting items expected to be in the crafting_container.}}^{{Lich setting|name=engineering_belt|desc=Belt used to hold bead-carving tools, if worn there instead of in your bag.}}^{{Lich setting|name=theurgy_use_prayer_mat|desc=Boolean. Use a prayer mat instead of an altar for applicable rituals.}}^{{Lich setting|name=prayer_mat|desc=Item name of your prayer mat, used when theurgy_use_prayer_mat is true.}}^{{Lich setting|name=prayer_mat_container|desc=Container your prayer mat is stored in. Falls back to theurgy_supply_container if unset.}}^{{Lich setting|name=theurgy_prayer_mat_room|desc=Room in which to use your prayer mat. Either an integer room ID, or a hash with an 'id' key.
<nowiki>
<nowiki>
theurgy_prayer_mat_room: 1234</nowiki>
theurgy_prayer_mat_room: 1234</nowiki>
}}^{{Lich setting|name=communes|desc=Array of commune names you want performed: Eluned, Tamsine, Truffenyi, and/or Kertigen. Each also has its own minimum circle/skill requirement.}}^{{Lich setting|name=theurgy_blacklist|desc=Array of ritual method names (as strings) to never perform.}}^{{Lich setting|name=theurgy_whitelist|desc=Array of ritual method names (as strings) to exclusively perform, excluding all others. Leave empty to allow all non-blacklisted rituals.}}^{{Lich setting|name=tithe|desc=Boolean. Whether to include the tithe ritual (requires an almsbox in your hometown).}}^{{Lich setting|name=theurgy_supply_levels|desc=Hash of item name => {min:, target:} restock thresholds, controlling when and how much of each ritual/commune supply item to buy.}}^{{Lich setting|name=ignored_npcs|desc=Used during the Eluned sirese-seed ritual as an invasion check; the room must contain only ignored NPCs (or none) to proceed.}}
}}
|uservars=
|uservars=
|children=
|children=tithe, carve-bead
}}
}}


Line 2,700: Line 2,754:
{{Lich script
{{Lich script
|description=Checks for new titles since the last time you ran the script.
|description=Checks for new titles since the last time you ran the script.
|usage=Run the script and provide a set of titles to check (e.g. ;titlecheck moonmage). On the first run for that title set, all titles will be reported as new. Running the script afterwards will report only new titles.
|usage=Run the script and provide a set of titles to check (e.g. <code>;titlecheck moonmage</code>). On the first run for that title set, all titles will be reported as new. Running the script afterwards will report only new titles. Add all to list every title in the set instead of just new ones, and/or sort to sort the results alphabetically.
|args={{Lich setting|name=title_set|desc=Which set of titles to check. One of: blunt, ranged, brawling, genedged, specedged, thrown, pole, shield, slings, weapons, weaponmaster, performer, primarymagic, magic, money, ownership, survival1, survival2, survival3, lore, criminal, generic, racial, premium, order, religion, novice, practitioner, dilettante, aficionado, adept, expert, professional, authority, genius, savant, master, grandmaster, guru, legend, cleric, trader, warmage, necromancer, empath, ranger, paladin, bard, barbarian, thief, or moonmage.}}^{{Lich setting|name=all|desc=Optional. List all titles in the set, instead of only new ones since the last run.}}^{{Lich setting|name=sort|desc=Optional. Sort the listed titles alphabetically.}}
|args=title_set
|settings=
|settings=
|uservars={{Lich setting|name=UserVars.titles|desc=Hash of title_set => titles you've previously been reported as having, used to detect new titles on later runs.}}
|uservars=titles
|children=
|children=
}}
}}
Line 2,710: Line 2,764:
{{Lich script
{{Lich script
|description=Uses scholarship tomes (such as those sold at Tomes of Lore) to train scholarship.
|description=Uses scholarship tomes (such as those sold at Tomes of Lore) to train scholarship.
|usage= The script has two modes: active and passive. Active will focus on studying until your scholarship mindstate goal is reached. Passive will run continuously in the background. With passive mode, tome will only get your book and study it when another primary whitelisted script is running (such as attunement sigil), to maximize scholarship training. You can add more passive-whitelisted scripts in your YAML, but you should only add scripts that will have at least one hand free to hold the book.
|usage=The script has two modes: active and passive. Active will focus on studying until your scholarship mindstate goal is reached. Passive will run continuously in the background. With passive mode, tome will only get your book and study it when another primary whitelisted script is running (such as attunement/sigilharvest), to maximize scholarship training. You can add more passive-whitelisted scripts in your YAML, but you should only add scripts that will have at least one hand free to hold the book. Your tome must also be listed in your gear: settings so it can't be lost from your hands; the script refuses to run otherwise.
|args={{Lich setting|name=active|desc=Actively study until your scholarship goal is reached, instead of passively waiting for the appropriate time.}}^{{Lich setting|name=debug|desc=Optional. Verbose messaging for troubleshooting.}}
|args= "active" to pull out your tome and study it to completion.
|settings=|settings={{Lich setting|name=tome_name|desc=Name of the tome to study. Books with more pages tend to be better for passive training.}}^{{Lich setting|name=second_to_last_page|desc=Excerpt from the second-to-last page. Required for newer books that lack predefined data. Example: “But, she is a great warrior with the fury of a mother.}}^{{Lich setting|name=quit_early|desc=<code>true</code> or <code>false</code>. Optional. Whether to stow the tome before finishing the last page, avoiding a 50% concentration hit.}}^{{Lich setting|name=scholarship_limit|desc=Optional. Target scholarship mindstate to train to before stopping. Example: <code>30</code>.}}^{{Lich setting|name=passive|desc=<code>true</code> or <code>false</code>. If true, runs in the background and trains passively until conditions are met. If false, focuses actively until scholarship goal is reached, then exits.}}^{{Lich setting|name=passive_scripts|desc=List of scripts that are safe to study while running (require at least one free hand). Example: <code>appraisal, attunement, first-aid, outdoorsmanship, crossing-repair, task-forage</code>.}}^{{Lich setting|name=debug|desc=<code>true</code> or <code>false</code>. Optional. Enables verbose debug output.}}
|settings={{Lich setting|name=gear|desc=Your character's gear list. The tome must be findable here (matching its adjective/name) or the script aborts, to keep it from being lost from your hands.}}^{{Lich setting|name=sanowret_no_use_rooms|desc=Shared top-level setting. List of room titles/IDs to avoid passively studying in.}}^{{Lich setting|name=tome_settings:tome_name|desc=Name of the tome to study. Books with more pages tend to be better for passive training.}}^{{Lich setting|name=tome_settings:second_to_last_page|desc=Excerpt from the second-to-last page. Required for newer books that lack predefined data. Example: "But, she is a great warrior with the fury of a mother".}}^{{Lich setting|name=tome_settings:quit_early|desc=<code>true</code> or <code>false</code>. Optional. Whether to stow the tome before finishing the last page, avoiding a 50% concentration hit.}}^{{Lich setting|name=tome_settings:scholarship_limit|desc=Optional. Target scholarship mindstate to train to before stopping. Defaults to 34. Example: <code>30</code>.}}^{{Lich setting|name=tome_settings:passive|desc=<code>true</code> or <code>false</code>. If true, runs in the background and trains passively until conditions are met. If false, focuses actively until scholarship goal is reached, then exits. Overridden by the active argument.}}^{{Lich setting|name=tome_settings:passive_scripts|desc=List of scripts that are safe to study while running (require at least one free hand). Example: <code>appraisal, attunement, first-aid, outdoorsmanship, crossing-repair, task-forage</code>.}}


<pre>
<pre>
tome_settings:
tome_settings:
tome_name: kuwinite codex # Books with more pages tend to be better for passive training.
tome_name: kuwinite codex # Books with more pages tend to be better for passive training.
second_to_last_page: But, she is a great warrior with the fury of a mother # Although some books have this data pre-defined, if you're using a relatively new book you will need to specify an excerpt of text from the second-to-last page.
second_to_last_page: But, she is a great warrior with the fury of a mother # Although some books have this data pre-defined, if you're using a relatively new book you will need to specify an excerpt of text from the second-to-last page.
# Try to stow the tome before finishing the last page, which comes with a 50% concentration hit and not much scholarship at higher ranks
# Try to stow the tome before finishing the last page, which comes with a 50% concentration hit and not much scholarship at higher ranks
quit_early: true
quit_early: true
# Target mindstates to train to
# Target mindstate to train to
scholarship_limit: 30
scholarship_limit: 30
# If true, the script will remain running in the background until specific conditions are met that allow for training
# If true, the script will remain running in the background until specific conditions are met that allow for training
Line 2,734: Line 2,786:
- crossing-repair
- crossing-repair
- task-forage
- task-forage
debug: false</pre>
</pre>
|uservars=

|children=
}}
}}


== trade ==
== trade ==
{{Lich script
{{Lich script
|description=Runs caravan trading routes for the Trading guild: picking up and delivering contracts and tasks, training a configurable set of skills opportunistically along the way, and managing the caravan itself (renting, leading, feeding, stabling).
|description=Do caravan trading in Zoluren
|usage=
Details on script usage and configuration can also be found at https://github.com/elanthia-online/dr-scripts/wiki/Trader-Tutorials

* <code>;trade</code> -- starts the main loop: picks up/delivers contracts, trains configured skills, and manages the caravan indefinitely (or until closeup/duration ends it).
* <code>;trade closeup [exit]</code> -- delivers all remaining crates, then returns (or stables) your caravan to avoid fees and stops. Add exit to also exit the game afterward.
* <code>;trade duration [minutes] [hunt] [exit]</code> -- runs for the given number of minutes (plus time to close up) before locking down new contracts and closing up. Add hunt to occasionally run a hunt defined in your charactername-caravanhunt.yaml file (see Quillith-caravanhunt.yaml) whenever you stop in your hometown and your Trading exp is high enough. Add exit to also exit the game afterward.
* <code>;trade hunt</code> -- same hunting behavior as above, run standalone alongside the normal indefinite loop.
* <code>;trade [roomid]</code> -- takes your existing caravan directly to the given room and exits.
* <code>;trade outpost [town]</code> -- takes your existing caravan directly to the trade outpost of the named town (Zoluren, Therengia, Ilithi, and Forfedhar only) and exits.
|args={{Lich setting|name=destination|desc=A room ID. Takes your caravan directly there and exits. Requires an existing caravan.}}^{{Lich setting|name=closeup|desc=Delivers all remaining crates and accepts no new contracts, then returns/stables the caravan and stops.}}^{{Lich setting|name=outpost|desc=Followed by a town name (first word). Takes your caravan directly to that town's trade outpost and exits.}}^{{Lich setting|name=duration|desc=Followed by a number of minutes. Runs for that long (plus closeup time) before locking down new contracts and closing up.}}^{{Lich setting|name=hunt|desc=If your Trading experience is above half, occasionally runs a hunt defined in your charactername-caravanhunt.yaml whenever you stop in your hometown.}}^{{Lich setting|name=exit|desc=Used with closeup or duration. Exits the game after delivering all crates and returning/stabling the caravan.}}
|settings={{Lich setting|name=hometown|desc=Your character's hometown; must be a town within your trading province.}}^{{Lich setting|name=trade_contract_container|desc=Container where you store your contracts.}}^{{Lich setting|name=trade_use_stable|desc=Boolean. Stable the caravan overnight/on closeup instead of returning it.}}^{{Lich setting|name=trade_tasks|desc=Boolean. Whether to pick up and complete Trading Guild tasks alongside your regular contract runs.}}^{{Lich setting|name=caravan_coins_on_hand|desc=Minimum copper to keep on hand for the caravan; the script withdraws more from your hometown bank when it drops below this.}}^{{Lich setting|name=caravan_interior|desc=Boolean. Whether you ride inside the caravan's interior while it's being led, instead of walking beside it.}}^{{Lich setting|name=caravan_recipes|desc=Overrides which crafting recipe(s) to use for the Outfitting/Engineering caravan-training crafts.}}^{{Lich setting|name=caravan_training_skills|desc=Hash of skill => cooldown (seconds) for skills to train opportunistically while running the route. Supported skills: Attunement, Warding, Augmentation, Utility, Appraisal, Forging, Perception, Locksmithing, First Aid, Outfitting, Engineering, Performance, Outdoorsmanship, Athletics.}}^{{Lich setting|name=crafting_container|desc=Container used for Outfitting/Engineering crafting materials.}}^{{Lich setting|name=engineering_belt|desc=Belt used to hold Engineering training tools, if worn there instead of in your bag.}}^{{Lich setting|name=outfitting_belt|desc=Belt used to hold Outfitting training tools, if worn there instead of in your bag.}}^{{Lich setting|name=worn_instrument|desc=Instrument used for Performance skill training. Required if Performance is in caravan_training_skills.}}^{{Lich setting|name=gem_pouch_adjective|desc=Adjective of your gem pouches, used for Appraisal training.}}^{{Lich setting|name=full_pouch_container|desc=Container where full gem pouches are stored during Appraisal training.}}^{{Lich setting|name=spare_gem_pouch_container|desc=Container holding spare empty gem pouches for Appraisal training.}}^{{Lich setting|name=crafting_training_spells|desc=Spells used for Attunement/Warding/Augmentation/Utility training while riding the caravan.}}^{{Lich setting|name=picking_lockbox|desc=Lockbox item used for Locksmithing training.}}^{{Lich setting|name=picking_worn_lockbox|desc=Boolean or container. Whether your picking lockbox is worn rather than carried.}}^{{Lich setting|name=lootables|desc=List of item nouns to loot during hunts.}}^{{Lich setting|name=loot_specials|desc=List of special/valuable items to prioritize looting during hunts.}}^{{Lich setting|name=textbook_type|desc=Textbook item used for First Aid training. Required (along with/instead of compendium_type) if First Aid is in caravan_training_skills.}}^{{Lich setting|name=compendium_type|desc=Compendium item used for First Aid training, as an alternative to textbook_type.}}^{{Lich setting|name=lumber_quantity|desc=Quantity of balsa lumber to keep on hand for Engineering training (capped at 30 by the script).}}^{{Lich setting|name=yarn_quantity|desc=Quantity of wool yarn to keep on hand for Outfitting training when knitting (capped at 301 by the script).}}^{{Lich setting|name=storage_containers|desc=List of containers to open at startup, used for storing crafting materials.}}^{{Lich setting|name=worn_trashcan|desc=Shared setting. Used to dispose of expired/delivered contracts.}}^{{Lich setting|name=worn_trashcan_verb|desc=Shared setting. Verb used with the worn trashcan.}}
|uservars={{Lich setting|name=UserVars.last_seen_caravan|desc=Hash tracking your caravan's last known room, when it was last seen, and whether it's currently stabled.}}^{{Lich setting|name=UserVars.trade_debug|desc=Set to enable verbose debug messaging throughout the script.}}
|children=athletics, bescort, buff, first-aid, hunting-buddy, lockbox, performance, safe-room, sell-loot, sew, shape, workorders
}}
}}

'''|usage='''
* <code>;trade closeup </code>
will deliver all remaining crates, then return your caravan to avoid fees.
* <code>;trade hunt </code>
will occasionally run a hunt defined in your charactername-caravanhunt.yaml file (see Quillith-caravanhunt.yaml) whenever you stop in your hometown and your Trading exp is high enough.
* <code>;trade duration </code>
will run for X minutes before locking down new contracts and closing up.
* <code>;trade roomid </code>
will take your caravan to a particular room.


== train ==
== train ==
Line 2,757: Line 2,813:
|description=Train the given attributes. It is intended to be used in [[RanikMap1|The Crossing]].
|description=Train the given attributes. It is intended to be used in [[RanikMap1|The Crossing]].
|usage=
|usage=
Arguments are the name of the attribute to train, with an optional number of trainings (Defaults to 1):
Arguments are the name of the attribute to train, with an optional number of trainings appended (defaults to 1):
* <code>;train</code>
* <code>;train</code>
No arguments: nothing happens
No arguments: nothing happens (displays the argument list).
* <code>;train st</code>
* <code>;train st</code>
"st" is ambiguious between stamina and strength: nothing happens
"st" is ambiguous between stamina and strength: nothing happens.
* <code>;train sta w2</code>
* <code>;train sta w2</code>
Trains stamina once and wisdom twice
Trains stamina once and wisdom twice.

|args=
The script checks the TDP cost of the requested training and your available TDPs and copper before proceeding, walking to each attribute's training room in turn.
|settings=
|args={{Lich setting|name=strength|desc=Number of times to train Strength, e.g. str3 or str.}}^{{Lich setting|name=stamina|desc=Number of times to train Stamina, e.g. sta3 or sta.}}^{{Lich setting|name=reflex|desc=Number of times to train Reflex, e.g. r3 or r.}}^{{Lich setting|name=agility|desc=Number of times to train Agility, e.g. a3 or a.}}^{{Lich setting|name=discipline|desc=Number of times to train Discipline, e.g. d3 or d.}}^{{Lich setting|name=wisdom|desc=Number of times to train Wisdom, e.g. w3 or w.}}^{{Lich setting|name=intelligence|desc=Number of times to train Intelligence, e.g. i3 or i.}}^{{Lich setting|name=charisma|desc=Number of times to train Charisma, e.g. c3 or c.}}
|settings={{Lich setting|name=hometown|desc=Used to look up attribute training room data, unless fang_cove_override_town is set.}}^{{Lich setting|name=fang_cove_override_town|desc=Overrides hometown for looking up attribute training room data.}}
|uservars=
|uservars=
|children=
|children=
Line 2,772: Line 2,830:
== training-manager ==
== training-manager ==
{{Lich script
{{Lich script
|description= High level script for managing combat and non combat training
|description=High level script for managing combat and non-combat training. Will alternate training in the crossing and hunting with a focus on either in or out of combat as specified. Sells loot, gathers favors, and repairs equipment along the way.
|usage=Run it. If training_manager_hunting_priority is true, it prioritizes hunting: it runs crossing-training in the background only until your priority skills need topping off or the town duration timer expires, then switches to hunting. If false, it runs crossing-training to completion (or until the duration timer expires) before hunting. After each hunt it sells loot, visits a safe room, and repairs as configured, then repeats.
|usage= Will alternate training in the crossing and hunting with a focus on either in or out of combat as specified. Heals and repairs after combat.
|args={{Lich setting|name=skip|desc=Optional. Skip the first round of harvesting/mining.}}
|args=
|settings={{Lich setting|name=training_manager_hunting_priority|desc=Set to true will cause it to focus on combat training at the expense of out of combat.}}^{{Lich setting|name=training_manager_priority_skills|desc=List of combat skills to monitor when it should go hunting again, only used if hunting_priority is set true.}}^{{Lich setting|name=training_manager_town_duration|desc=Number of minutes to limit town training to before going hunting. This works when hunting priority is true or false}}^{{Lich setting|name=mine_while_training|desc=Set to true will cause town training to start with a mining loop.}}^{{Lich setting|name=favor_goal|desc=Number of favors to work towards, if this is set will work on favors while training.}}^{{Lich setting|name=favor_god|desc=Desired immortal to request favor orb for Must be set for favor gathering to work properly.}}^{{Lich setting|name=repair_timer|desc=Time in seconds between each run of crossing-repair. Default is 10 minutes, or 600 seconds.}}^{{Lich setting|name=repair_withdrawal_amount|desc=Amount of currency to withdrawal for each repair. Default amount is 10,000.}}^{{Lich setting|name=skip_repair|desc=True/false setting. Use true to skip all crossing-repair functionality. Default is false.}}
|settings={{Lich setting|name=hometown|desc=Used to look up town data, including the favor altar location.}}^{{Lich setting|name=training_manager_hunting_priority|desc=Set to true will cause it to focus on combat training at the expense of out of combat.}}^{{Lich setting|name=training_manager_priority_skills|desc=List of combat skills to monitor when it should go hunting again, only used if hunting_priority is set true.}}^{{Lich setting|name=priority_skills_lower_limit|desc=Experience threshold at or below which a priority skill is considered low, triggering a switch to hunting.}}^{{Lich setting|name=training_manager_town_duration|desc=Number of minutes to limit town training to before going hunting. This works when hunting priority is true or false.}}^{{Lich setting|name=mine_while_training|desc=Set to true will cause each loop to start with a mining-buddy run.}}^{{Lich setting|name=lumber_while_training|desc=Set to true will cause each loop to start with a forestry-buddy run.}}^{{Lich setting|name=sell_loot|desc=Set to true to run sell-loot after each hunt.}}^{{Lich setting|name=favor_goal|desc=Number of favors to work towards, if this is set will work on favors while training.}}^{{Lich setting|name=favor_god|desc=Desired immortal to request a favor orb for. Must be set for favor gathering to work properly.}}^{{Lich setting|name=use_favor_altars|desc=Boolean. If true, runs the favor script with your favor_god specified (altar-based flow) instead of the plain favor script.}}^{{Lich setting|name=repair_every|desc=Number of hunts between forced crossing-repair runs. If unset, crossing-repair decides on its own whether to run each time.}}^{{Lich setting|name=skip_repair|desc=True/false setting. Use true to skip all crossing-repair functionality. Default is false.}}
|uservars={{Lich setting|name=UserVars.repair_every_counter|desc=Counts hunts since the last forced repair, compared against repair_every.}}
|uservars=
|children=mining-buddy,sell-loot,hunting-buddy,crossing-training,safe-room,crossing-repair
|children=mining-buddy, forestry-buddy, sell-loot, hunting-buddy, crossing-training, safe-room, crossing-repair, favor
}}
}}


== transfer-items ==
== transfer-items ==
{{Lich script
{{Lich script
|description=Transfers all items from one container to another. It may need to be run multiple times if you have a lot of stuff. If you use an adjective you must type it completely in double quotes, e.g. "hide sack", not "h sack".
|description=Transfers all items from one container to another (or to the trash). It may need to be run multiple times if you have a lot of stuff. If you use an adjective you must type it completely in double quotes, e.g. "hide sack", not "h sack".
|usage=
|usage=
* Transfer all items from <source> to <destination>
* Transfer all items from <source> to <destination>
Line 2,791: Line 2,849:
;transfer-items <source> <destination> <noun>
;transfer-items <source> <destination> <noun>
;transfer-items backpack quiver arrows
;transfer-items backpack quiver arrows

|args={{Lich setting|name=source|desc=Source container.}}^{{Lich setting|name=destination|desc=Destination container.}}^{{Lich setting|name=noun|desc=If specified, only items with this noun will be transferred.}}
* Dispose of all items from <source> instead of moving them, by using "trash" as the destination
;transfer-items backpack trash
|args={{Lich setting|name=source|desc=Source container.}}^{{Lich setting|name=destination|desc=Destination container, or "trash" to dispose of the items instead of moving them.}}^{{Lich setting|name=noun|desc=Optional. If specified, only items with this noun will be transferred.}}
|settings=
|settings=
|uservars=
|uservars=
Line 2,799: Line 2,860:
== truffenyi-commune-quest ==
== truffenyi-commune-quest ==
{{Lich script
{{Lich script
|description=Runs in the background to do all actions required during the truffenyi commune quest, praying to the gods presented in the visions and dropping any food items that appear in your hands. This should be run somewhere safe, without other scripts running because they can interfere. Start after drinking the vial created from your mini altar twice.
|description=Automates the stages of the Truffenyi commune quest: reading the miniature altar's carvings and filling it with matching favor orbs, drinking the resulting murky vial and responding to each vision by praying to the correct aspect (or dropping food items that appear in your hands), finding the hidden forest shrine, and completing the shrine sequence (entering the clearing, following the magpie, catching the weasel, and freeing the ox).
|usage=Call with a step argument to run that stage of the quest. Start with altar (your hometown must be set to Crossing, since orbs from any of the 39 aspects may be needed), then run vial after receiving the murky vial -- this step takes several hours and you should not be doing anything else during it. Once the vial step finishes, use findshrine to search a list of candidate rooms for the hidden shrine (or shrine if you already know where it is), which then runs the shrine sequence for whichever part of it your current room indicates you're on. Should be run somewhere safe, without other scripts running, since they can interfere.
|usage=
|args={{Lich setting|name=step|desc=Which step to run: altar, vial, findshrine, or shrine.}}
|args=
|settings={{Lich setting|name=hometown|desc=Must be set to Crossing for the altar step, since orbs from any of the 39 immortal aspects may be needed.}}
|settings=
|uservars=
|uservars=
|children=
|children=favor, safe-room
}}
}}


== validate ==
== validate ==
{{Lich script
{{Lich script
|description=Checks character yamls for common mistakes.
|description=Checks character YAML profiles for common configuration mistakes: invalid or deprecated settings, mismatched skill names, missing required settings, and more, reporting warnings and errors.
|usage=Run the script, optionally with verbose to echo each check as it runs. It first checks that all profile files use the .yaml extension (not .yml), that a checkname-setup.yaml exists, and that every checkname-*.yaml file parses as valid YAML. It then notes any curated scripts you've copied into your custom folder (which won't receive updates), and runs a large set of assertions against your checkname-setup.yaml settings -- and again against each file listed in your hunting_file_list setting (other than 'setup', which is already checked) -- reporting a running count of warnings and errors.
|usage=
|args={{Lich setting|name=verbose|desc=Optional. Echoes the name of each assertion as it runs, useful for troubleshooting.}}
|args=
|settings={{Lich setting|name=hunting_file_list|desc=List of additional settings files (beyond checkname-setup.yaml) to also validate.}}
|settings=
|uservars=
|uservars=
|children=
|children=
Line 2,819: Line 2,880:
== vanity-pet ==
== vanity-pet ==
{{Lich script
{{Lich script
|description=Some [[vanity pet|vanity pets]], like hogs and monkeys, can be set on the ground to follow you. At times, these pets need to be stowed away for safe keeping, such as before [[Breaking_and_Entering|burgling]] so that they aren't lost when a room unloads. When stowing, the script will wait for pet to arrive in your room (sometimes the pet may lag behind, especially if you move fast and far).
|description=Stows a vanity pet (such as a hog or monkey) into its container, or drops it back on the ground to follow you again. Useful for stowing a pet before burgling or hunting so it isn't lost when a room unloads, then dropping it again afterward. When stowing, waits for a lagging pet to arrive in your room before picking it up.
|usage=Run with a pet_action of stow or drop, along with the pet's name and container. If pet_action, pet_name, or pet_container are omitted, falls back to the vanity_pet_action, vanity_pet_name, and vanity_pet_container settings respectively. If dropping fails because the room doesn't allow it (e.g. a bank), the pet is re-stowed instead. Commonly hooked into hunting-buddy's or burgle's before/after settings to automatically stow the pet before combat or burgling and drop it again afterward.
|usage=Run to stow your pet before burgling or entering combat. Drop your pet at other times when you want it to follow you.
|args={{Lich setting|name=pet_action|desc=Optional. STOW or DROP to either stow your pet in its container or drop it to follow you. Falls back to the vanity_pet_action setting if omitted.}}^{{Lich setting|name=pet_name|desc=Optional. Name of your pet. Falls back to the vanity_pet_name setting if omitted.}}^{{Lich setting|name=pet_container|desc=Optional. Container for your pet. Falls back to the vanity_pet_container setting if omitted.}}^{{Lich setting|name=debug|desc=Optional. Enables debug output.}}
|args=
|settings={{Lich setting|name=vanity_pet_action|desc=Default pet_action used when not passed as an argument.}}^{{Lich setting|name=vanity_pet_name|desc=Default pet_name used when not passed as an argument.}}^{{Lich setting|name=vanity_pet_container|desc=Default pet_container used when not passed as an argument.}}

|uservars={{Lich setting|name=pet_debug|desc=If true, enables debug output (equivalent to passing debug).}}
* Usage:
|children=
<pre>
vanity-pet pet_action pet_name pet_container [debug]

pet_action STOW or DROP to either stow your pet in their container or drop them to the ground.

pet_name Name of your pet.

pet_container Container for your pet.

debug Enable debug output
</pre>

* Drop Pet Example:
<pre>
> ;vanity-pet drop farm.hog woven.sack

--- Lich: vanity-pet active.

[vanity-pet]>get farm.hog from my woven.sack

You pluck a lazy farm hog from a soft woven sack with a golden piglet charm, the creature snorting as you wake it up.
>
[vanity-pet]>drop my farm.hog

You set the farm hog on the ground. It trots around you in a circle, happily oinking.

>
--- Lich: vanity-pet has exited.
</pre>

* Stow Pet Example:
<pre>
> ;vanity-pet stow farm.hog woven.sack

--- Lich: vanity-pet active.

[vanity-pet]>get farm.hog

You scoop the farm hog up.

>
[vanity-pet]>put my farm.hog in my woven.sack

You tuck your farm hog into its snug woven sack and it curls up to go to sleep, snorting softly.
>
--- Lich: vanity-pet has exited.
</pre>
|settings=

Hook into hunting-buddy:
<pre>
hunting_info:
before:
- vanity-pet stow farm.hog woven.sack
after:
- vanity-pet drop farm.hog woven.sack
</pre>

Hook into burgle:
<pre>
burgle_settings:
before:
- vanity-pet stow farm.hog woven.sack
after:
- vanity-pet drop farm.hog woven.sack
</pre>
}}
}}


== wait ==
== wait ==
{{Lich script
{{Lich script
|description=Designed for use with the '''multi''' script to pause N seconds between commands.
|description=Pauses for a specified number of seconds, then waits for any pending roundtime to clear. Designed for use with the '''multi''' script to insert a delay between chained commands.
|usage=
|usage=
<br>
<br>
Line 2,905: Line 2,901:
;multi 1,cough,:wait 5,sneeze,:wait 5,hiccup
;multi 1,cough,:wait 5,sneeze,:wait 5,hiccup
</pre>
</pre>
|args={{Lich setting|name=seconds|desc=Optional. Number of seconds to pause before continuing. Defaults to 0 if omitted.}}
|settings=
|uservars=
|children=
}}
}}


== walkingastro ==
== walkingastro ==
{{Lich script
{{Lich script
|description=Runs as a background script whose aim is to keep your prediction pools filling and the Astrology Skill moving.
|description=Moon Mage only (the script exits immediately for other classes). Runs as a background script whose aim is to keep your prediction pools filling and the Astrology skill moving while you go about other activities, without having to run the ;astrology script directly.
|usage=Every 10 seconds, checks whether 205 seconds have passed since the last observation. When they have, and none of the scripts listed in walkingastro_no_use_scripts are running, both hands are empty, and you can see the sky, it retrieves your telescope and centers it on a constellation determined by time of day and your circle (currently, due to a temporary in-game event, both day and night observations resolve to the same four constellations -- Champions, Elide, Issendar, and Kirmhara -- mapped to the survival pool; this will revert to the normal day/Sun, night/Heart-and-beyond-by-circle behavior once that event ends). If a creature closes to combat range while it's working, it retreats before continuing. When an observed pool fills (or partially fills, if use_partial_pools is enabled) and either your Astrology experience is 25 or under or predict_regardless_of_mindstate is enabled, it aligns and predicts against that pool -- rolling bones or using a divination tool instead of a plain prediction if use_tools is enabled -- then stows the telescope.
|usage=On a 215 second timer, while not in combat (or while a series of other scripts are running), it will grab your telescope and if day observe the Sun, if night observe the Heart constellation. If your survival prediction pool fills, the script will instead align and predict against a survival skill. The aim of the script is to keep Astrology moving while you are out and about with your character, without having to rely on the ;astrology script.


Finally, this script assumes that you have a telescope (see Astrology for telescope support settings) and that Piercing Gaze is up.
Note, walkingastro will wait and not fire while the following scripts are running: 'steal', 'combat-trainer', 'pick', 'craft', 'shape', 'sew','bescort', 'remedy', 'forge', 'carve', 'performance', 'theurgy', 'hlctheurgy', 'astrology', 'astrology2', 'study-art', 'mech-lore', 'first-aid'.

Finally, this script assumes that you have a telescope (see Astrology for telescope support settings) and that Piercing Gaze is up.


It is highly recommended that you add PG to your list of in/out of combat buff spells.
It is highly recommended that you add PG to your list of in/out of combat buff spells.
|args={{Lich setting|name=debug|desc=Optional. Enables debug output.}}
|args=
|settings={{Lich setting|name=telescope_storage|desc=Container your telescope is retrieved from and stowed in.}}^{{Lich setting|name=divination_tool|desc=Divination tool used to predict, if use_tools is enabled and divination_bones_storage is empty.}}^{{Lich setting|name=divination_bones_storage|desc=Container for divination bones; if not empty and use_tools is enabled, bones are rolled instead of using divination_tool.}}^{{Lich setting|name=walkingastro_no_use_scripts|desc=List of script names during which walkingastro will not attempt to observe.}}^{{Lich setting|name=walkingastro.use_tools|desc=If true, predicts using your divination_bones_storage or divination_tool instead of a plain prediction.}}^{{Lich setting|name=walkingastro.use_partial_pools|desc=If true, also predicts against partially-filled pools (not just fully-filled ones), targeting the specific pool tied to the observed constellation.}}^{{Lich setting|name=walkingastro.predict_regardless_of_mindstate|desc=If true, predicts every time a pool fills regardless of your current Astrology experience/mindstate.}}^{{Lich setting|name=walkingastro.startup_delay|desc=Number of seconds to pause before the first observation when the script starts.}}^{{Lich setting|name=walkingastro.analyze_divination_tool|desc=Unless explicitly set to false, analyzes the divination tool after using it.}}
|settings=
|uservars={{Lich setting|name=walkingastro_debug|desc=If true, enables debug output (equivalent to passing debug).}}
|uservars=
|children=
|children=buff
}}
}}


== wand-watcher ==
== wand-watcher ==
{{Lich script
{{Lich script
|description=Activates wands automatically based on cooldown timer
|description=Activates wands automatically based on a cooldown timer.
|usage=Best added to character autostart.
|usage=Best added to character autostart. Wands must also be listed in your `gear:` settings, or the script will abort and tell you which ones are missing.

You need to be intelligent about how cooldown / count interact. If you only have 1 and the cooldown is 60 minutes, don't set a value less than 60 minutes.


go2 and burgle are always treated as no_use_scripts regardless of your settings, so you don't need to list them yourself.
You need to be intelligent about how cooldown / count interact. If you only have 1 and the cooldown is 60 minutes, don't set a value less than 60 minutes.
|args={{Lich setting|name=delay|desc=Optional. Overrides wand_watcher_startup_delay from the yaml for this run.}}^{{Lich setting|name=reset|desc=Optional. Clears the stored per-wand timing variables.}}^{{Lich setting|name=once|desc=Optional. Runs one check-and-use pass, then exits, instead of looping.}}
|settings={{Lich setting|name=wands|desc=Hash of wands to manage, keyed by the wand's adjective+noun (must be unique). Each entry supports: activation message (required, the spell activation success message), activate verb (optional, defaults to 'tap'), container (required, where the wand is stored), cooldown (optional, minutes between activation attempts, defaults to 30), count (optional, number of wands you own, defaults to 2), spell (optional, name of the spell the wand casts; omit to disable the buff-duration check), min duration (optional, minimum remaining buff duration in minutes before it will recast, defaults to 1), and luck_item (optional, skips activation while your luck is above 0 and rechecks in 60 seconds, defaults to false). See the example below.}}^{{Lich setting|name=wand_watcher_no_use_scripts|desc=List of script names during which the script will not attempt to grab or activate wands. go2 and burgle are always treated as no_use_scripts regardless of this setting.}}^{{Lich setting|name=wand_watcher_no_use_rooms|desc=List of rooms in which the script will not attempt to grab or activate wands. Entries can be a room number, an exact room title, or a regex matching the title.}}^{{Lich setting|name=wand_watcher_startup_delay|desc=Optional. Seconds to wait on startup before doing anything. Defaults to 10.}}^{{Lich setting|name=wand_watcher_passive_delay|desc=Optional. Seconds to wait between checks for reusing wands. Defaults to 60.}}


* Example Settings:
* Example Settings:
Line 2,941: Line 2,943:
# spell: FooBaz # Name of spell wand casts [Optional - disables buff check if absent]
# spell: FooBaz # Name of spell wand casts [Optional - disables buff check if absent]
# min duration: 2 # Min buff time before it will recast [Optional - defaults to 1]
# min duration: 2 # Min buff time before it will recast [Optional - defaults to 1]
# luck_item: false # Skip activation while luck > 0, recheck in 60s [Optional - defaults to false]


bloodwood branch:
bloodwood branch:
Line 2,976: Line 2,979:


</pre>
</pre>
|args=
|settings=See example for explanation.
|uservars={{Lich setting|name=wand_watcher_timers|desc=Persistent storage for next use time for all wands.}}
|uservars={{Lich setting|name=wand_watcher_timers|desc=Persistent storage for next use time for all wands.}}
|children=
|children=
Line 2,984: Line 2,985:
== weave-cloth ==
== weave-cloth ==
{{Lich script
{{Lich script
|description=Automates weaving cloth at a loom in your hometown (intended for use in [[RanikMap1|The Crossing]]). Clears any leftover thread off the loom, loads fresh thread, weaves the cloth -- handling loom hiccups like dust and debris, bunching, or unraveling along the way -- and stows the finished cloth once it's done.
|description=This script is intended to be used in [[RanikMap1|The Crossing]].
|usage=Run while able to reach a loom in your hometown. It first checks the loom and pulls/drops any thread already loaded on it, then gets and loads two batches of thread (dropping anything left in your hands after each). It then repeatedly runs 'weave loom', switching to 'clean loom', 'turn loom', or 'push loom' as the loom's messages require, until the finished cloth ends up in your hand, at which point it stows the cloth.
|usage=
|args=
|args=
|settings={{Lich setting|name=hometown|desc=Used to locate the loom room.}}
|settings=
|uservars=
|uservars=
|children=
|children=
Line 2,994: Line 2,995:
== workorders ==
== workorders ==
{{Lich script
{{Lich script
|description=completes a workorder for the given discipline. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/Crafting-Setup
|description=Completes a work order for the given discipline -- requesting one (or resuming/turning in an existing one), crafting or gathering the needed items via the discipline's own crafting script, bundling and turning them in, and optionally repairing your tools afterward. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/Crafting-Setup
|usage=Run with a discipline to work that craft's work order: it finds the crafting NPC, requests a work order matching your configured difficulty and item-count range, crafts or gathers what's needed (forging, sewing/knitting, shaping, carving, brewing remedies, enchanting, or tinkering, depending on discipline), bundles finished items into the logbook, and turns it in. Pass repair to instead repair your tools for that discipline, turnin to request a work order and immediately turn it in using items already on hand, or continue to resume an in-progress work order already tracked in the discipline's logbook.
|usage=
|args={{Lich setting|name=discipline|desc=Type of workorder to do: blacksmithing, weaponsmithing, tailoring, shaping, carving, remedies, artificing, or tinkering.}}^{{Lich setting|name=repair|desc=Optional. Repairs your crafting tools for the given discipline instead of crafting.}}^{{Lich setting|name=turnin|desc=Optional. Requests a work order and immediately turns it in using items already on hand.}}^{{Lich setting|name=continue|desc=Optional. Resumes an in-progress work order tracked in the discipline's logbook instead of requesting a new one.}}
|args={{Lich setting|name=type|desc=Type of workorder to do, blacksmithing, tailoring, shaping.}}
|settings={{Lich setting|name=crafting_container|desc=Bag that materials, tools, and books are stored in.}}^{{Lich setting|name=workorder_diff|desc=difficulty of workorder to request.}}^{{Lich setting|name=crafting_recipes|desc=List of crafting recipes in base-crafting.yaml.}}^{{Lich setting|name=forging_tools|desc=List of tools used in forging.}}^{{Lich setting|name=forging_belt|desc=Set up this has if you have a toolbelt for this craft.}}^{{Lich setting|name=forging_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=forging_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=knitting_tools|desc=List of tools used in knitting.}}^{{Lich setting|name=outfitting_belt|desc=Set up this has if you have a toolbelt for this craft.}}^{{Lich setting|name=outfitting_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=outfitting_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=shaping_tools|desc=List of tools used in shaping.}}^{{Lich setting|name=engineering_belt|desc=Set up this has if you have a toolbelt for this craft.}}^{{Lich setting|name=engineering_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=engineering_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=carving_tools|desc=List of tools used in carving.}}^{{Lich setting|name=workorder_min_items|desc=Minimum number of items in the workorder required to accept.}}^{{Lich setting|name=workorder_max_items|desc=Maximum number of items in the workorder required to accept. Set to 5 or below or run the risk of not having enough material, which will cause the script to endlessly loop.}}^{{Lich setting|name=workorders_repair|desc= Whether you want to repair your crafting tools after completing workorders or not. For those with tools setup under gear, set to false in your yaml.}}
|settings={{Lich setting|name=crafting_container|desc=Bag that materials, tools, and books are stored in.}}^{{Lich setting|name=crafting_items_in_container|desc=List/details of items already kept in your crafting_container, used to avoid unnecessary store/retrieve trips.}}^{{Lich setting|name=hometown|desc=Town used to look up crafting NPCs, rooms, and stock, unless force_crafting_town is set.}}^{{Lich setting|name=force_crafting_town|desc=If set, overrides hometown specifically for workorders.}}^{{Lich setting|name=use_own_ingot_type|desc=If set to a metal type, forges using your own ingots/deeds of that type instead of an NPC-provided ingot.}}^{{Lich setting|name=deed_own_ingot|desc=If true (with use_own_ingot_type set), deeds any excess smelted ingot after forging with your own material.}}^{{Lich setting|name=carving_workorder_material_type|desc=Material type (e.g. bone or stone) used when requesting/crafting carving work orders.}}^{{Lich setting|name=workorder_min_items|desc=Minimum quantity in a work order required to accept it.}}^{{Lich setting|name=workorder_max_items|desc=Maximum quantity in a work order required to accept it. Keep this at 5 or below, or you run the risk of not having enough material, which will cause the script to endlessly loop.}}^{{Lich setting|name=workorder_recipes|desc=Per-discipline list of recipe names to restrict requested work orders to, overriding the default of any recipe flagged as a work order recipe.}}^{{Lich setting|name=workorder_diff|desc=Difficulty of workorder to request; a single value for all disciplines, or a hash keyed by discipline.}}^{{Lich setting|name=workorder_cash_on_hand|desc=Amount of copper to keep on hand while crafting, withdrawn from the bank as needed.}}^{{Lich setting|name=craft_max_mindstate|desc=Skips crafting and exits if your discipline's skill experience is currently above this mindstate.}}^{{Lich setting|name=retain_crafting_materials|desc=If true, keeps leftover materials instead of disposing of them as trash.}}^{{Lich setting|name=workorders_repair|desc=Whether you want to repair your crafting tools after completing workorders or not. For those with tools setup under gear, set to false in your yaml.}}^{{Lich setting|name=workorders_override_store|desc=For remedies, forages and prepares needed herbs instead of buying stock, even when a stock item is configured.}}^{{Lich setting|name=workorders_materials|desc=Hash of material name overrides used across disciplines: metal_type, fabric_type, knit_type, wood_type, bone_type, stone_type, mechanism_ingot_type, and mechanism_press_speed.}}^{{Lich setting|name=workorders_force_heal|desc=If true, runs safe-room (forced) before starting a work order.}}^{{Lich setting|name=default_container|desc=Fallback container used to retrieve items already on hand when using turnin.}}^{{Lich setting|name=workorders_no_repair_tools|desc=List of tool names to skip when repairing.}}^{{Lich setting|name=workorders_repair_own_tools|desc=If true, repairs your tools using your own materials instead of turning them in to an NPC.}}^{{Lich setting|name=forging_tools|desc=List of tools used in forging.}}^{{Lich setting|name=forging_belt|desc=Set up this hash if you have a toolbelt for forging.}}^{{Lich setting|name=forging_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=forging_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=outfitting_room|desc=Room to walk to for tailoring, sewing, and knitting.}}^{{Lich setting|name=outfitting_tools|desc=List of tools used in tailoring (sewing and knitting).}}^{{Lich setting|name=outfitting_belt|desc=Set up this hash if you have a toolbelt for this craft.}}^{{Lich setting|name=outfitting_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=outfitting_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=engineering_room|desc=Room to walk to for shaping, carving, and tinkering.}}^{{Lich setting|name=engineering_tools|desc=List of tools used in shaping, carving, and tinkering.}}^{{Lich setting|name=engineering_belt|desc=Set up this hash if you have a toolbelt for this craft.}}^{{Lich setting|name=engineering_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=engineering_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=alchemy_room|desc=Room to walk to for remedies.}}^{{Lich setting|name=alchemy_tools|desc=List of tools used for remedies.}}^{{Lich setting|name=alchemy_belt|desc=Set up this hash if you have a toolbelt for this craft.}}^{{Lich setting|name=alchemy_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=alchemy_belt:items|desc=List of items held on the belt.}}^{{Lich setting|name=enchanting_room|desc=Room to walk to for artificing.}}^{{Lich setting|name=enchanting_tools|desc=List of tools used for artificing.}}^{{Lich setting|name=enchanting_belt|desc=Set up this hash if you have a toolbelt for this craft.}}^{{Lich setting|name=enchanting_belt:name|desc=Unique name of belt.}}^{{Lich setting|name=enchanting_belt:items|desc=List of items held on the belt.}}
workorders_repair: true

#CARAVAN SETTINGS
# container holding caravan contracts for ;trade

|uservars=
|uservars=
|children=smith, shape, sew
|children=safe-room, smith, shape, sew, carve, remedy, enchant, tinker, smelt
}}
}}



Latest revision as of 10:05, 26 August 2026


This page documents the collection of scripts that are available from an external repository located at https://github.com/elanthia-online/dr-scripts, and not through the in-game ;repository functionality.

Setup and Installation

Lich install instructions

An invite to the Lich Discord is available on the Discord page.

For script-specific documentation, see the appropriate section, below. For YAML documentation, see GitHub's YAML and Guides.

For any bugs, please see us on GitHub open an issue on GitHub. We look forward to hearing from you!

Introduction to Character Settings

Character settings are read from a YAML file.

What is YAML?

YAML is a human-friendly file format that we use to store settings. It stands for YAML Ain't Markup Language (the name references itself as a kind of computer science joke). It's got a website and everything (http://yaml.org/), but there are only a few things you actually need to know:

Indentation matters. Use two spaces for each level of indentation.

If you see a line like train_with_spells: true, that means that the train_with_spells setting is being assigned a value of true. This may also be referred to as a hash in which train_with_spells is mapped to true. Values can be true/false, numbers, text, hashes, or lists (see below).

A list (or array) is a series of values. For example, this creates a list named loot_additions of item nouns that you want to loot:

loot_additions:
- card
- dira
- bolt
- arrow
- stone

A comment is any line that starts with a #. They are ignored when our scripts read your settings file. Comments are entirely for your own benefit (e.g. to leave yourself a note).

Don't worry, it'll make more sense if you go look at a YAML file. Try taking a look at some of these.

Loading YAML Files

YAML files are loaded in a predefined order. base.yaml is loaded first, then YourCharacterName-setup.yaml. If any arguments are given to a script (for example, ;combat-trainer BacktrainWeapons), then YourCharacterName-BacktrainWeapons.yaml will be loaded last.

If the same setting occurs in multiple YAML files, then the last version of that setting is used. For example, you could define dance_threshold to be 1 in YourCharacterName-setup.yaml and then redefine it to be 0 in YourCharacterName-BacktrainWeapons.yaml.

base.yaml provides defaults for many (but not all) of the settings. You should never modify base.yaml directly; instead override settings in YourCharacterName-setup.yaml or YourCharacterName-SomethingElse.yaml. If you think something should be changed in base.yaml, please contact us in-game or open a pull request. We welcome all feedback and suggestions.

Debugging YAML files

Its helpful to use a YAML parser for diagnosing issues. http://yaml-online-parser.appspot.com/

Autostart

Many users prefer to have certain scripts automatically start every time their character loads. To do that, use the below commands to designate scripts to start for every character or character-specific.

Add an autostart

;e autostart('script-name') will start the script called 'script-name' for all of your characters
;e autostart('script-name', false) will start the script for only this character

List autostart scripts

;e echo list_autostarts will show you the files being autostarted on a given character

Remove an autostart

;e stop_autostart('script-name') will remove an autostarted file from the list

The other autostart

There are two autostart scripts. The above commands are for normal use. Advanced options found below under autostart script details.

Scripts

accept-sell

Accepts an outstanding trade offer for a pouch/bundle, appraises it and sells it. Returning coins, item, and a profit report to the owner.

Script usage: Start the script with both hands empty. It loops continuously, watching for an outstanding trade offer to accept, appraise (unless `skip` is used), and sell. Each pass it checks that both hands are still empty — if either hand is full, it echoes a warning and exits.

Script arguments:

skip: Don't appraise, just sell and hand off (faster for multiple pouches/bundles).
buy: Pay for the pouch out of your own money and keep it, instead of selling it.
dump: Dump the item after sale instead of handing it back to the giver.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


addroom

Add a series of rooms to the lich map. This script will checkout the mapdb, add the new rooms, and commit the mapdb. Automap is preferred to this script.

Script usage: To use this script send it an ordered set of directions to map. If you don't provide a direction no mapping will be provided.

For example, to add a Y branch to the north:

;addroom "north, northeast, southwest, northwest, southeast, south"

To add a store:

;addroom "go shop, out"

The travel delay defaults to 0.2.

Script arguments:

debug: Turns on debugging messages.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


afk

Runs in the background to provide safety while you are afk. Basic keep alive script with simple health/spirit/death monitoring. Will exit on low health, low spirit, or death.

Script usage: Start the script and leave it running in the background while you are afk. It pauses briefly on startup and waits until your health and spirit both recover to near-full before actively monitoring. While running, it will send idle-keepalive commands, watch for justice/bounty trouble, handle a few situational room/hands issues, and log you out of the game entirely (sending a Slack notification) if you die or your health/spirit drops below `health_threshold`.

Script arguments:

Settings used in this script:

health_threshold: Threshold at which you will exit (the same threshold is used for health and spirit).
depart_on_death: If true, attempt a `depart` command (using `depart_type`) before exiting the game after death.
depart_type: The destination/type passed to the `depart` command on death, used only if `depart_on_death` is true.
afk_justice_threshold: Number of justice-related messages (bounty hunters/authorities coming after you) tolerated before the script exits the game.
slack_username: Slack username used to register with the Slackbot integration so exit/status messages get sent to Slack.

UserVars used in this script:

Other scripts used by this script:


almanac

Uses an almanac every 10 minutes. Pauses all other scripts, stows your left hand, studies it, then unpauses everything.

Script usage: Start the script and leave it running in the background. It will automatically retrieve, turn (if training a specific skill), and study your almanac roughly every 10 minutes, pausing other scripts briefly each time to avoid interference. It exits on its own if all your skills are capped, if your almanac isn't listed in your `gear:` settings, if it can't find your almanac, or if it detects a premium-only almanac on a non-premium account.

Script arguments:

Settings used in this script:

almanac_no_use_scripts: List of script names; the almanac will not be used while any of these scripts are running.
almanac_no_use_rooms: List of room IDs and/or room title patterns; the almanac will not be used while in one of these rooms.
almanac_skills: List of skills to prioritize training with the almanac (used if no priority skill is eligible).
almanac_noun: The noun/name of the almanac item to use, e.g. `almanac`. Must also be listed in your `gear:` settings.
almanac_priority_skills: List of skills to prioritize above `almanac_skills` when selecting a training skill.
almanac_report_details: If true, reports which skill was picked and the exp gained via a message each time the almanac is studied (only when `exp-monitor` isn't already running).
almanac_startup_delay: Number of seconds to pause before the script begins its main loop on startup.

UserVars used in this script:

Other scripts used by this script:


appraisal

Trains the Appraisal skill by appraising configured items such as gear, zills, bundles, gem pouches, and art in the Crossing gallery. Supports Appraise Focus mode.

Script usage: Run with no arguments to work through the training tasks listed in your `appraisal_training` setting, in order, stopping as soon as Appraisal reaches 30/34 field experience:

;appraisal

Optional modifiers can be combined with a plain run:

;appraisal count
;appraisal nonspecific
;appraisal nonspecific count

Appraise Focus mode (requires 200+ Appraisal ranks) — focuses a specific item or one of the built-in concepts, then exits:

;appraisal focus <item>
;appraisal focus defense
;appraisal focus inner fire

After focusing, the script runs appraise focus check and reports whether you gained the learning boost or already have one active, then exits.

Training tasks (set these as entries in your `appraisal_training` list, not as command-line arguments):

  • gear - wears your "standard" equipment set and appraises each equipped item.
  • zills - assesses/reassesses your zills. Skipped automatically (with a message) once Appraisal rank reaches 250+.
  • bundle - quickly appraises a worn bundle.
  • art - runs the study-art script to appraise art in the Crossing gallery.
  • pouches - appraises gem pouches one at a time from `full_pouch_container`, opening/closing them as needed.
  • kit_pouches - same pouch appraisal/routing logic as `pouches`, but pulls pouches from numbered slots in a `gem_kit_name` container instead. Skipped if `gem_kit_name` isn't set.

Pouch behavior notes:

  • The script will open/close pouches automatically if required to appraise contents.
  • Empty pouches are routed to spare_gem_pouch_container.
  • Pouches appraising below gem_pouch_low_value are routed to low_value_gem_pouch_container.
  • If run with count, pouches with fewer than 500 gems are also routed to low_value_gem_pouch_container (counting is silently disabled with a warning if that container isn't configured).

Example YAML configuration:

appraisal_training:
- gear
- zills
- art
- bundle
- pouches

# Pouch handling
full_pouch_container: backpack
spare_gem_pouch_container: satchel
low_value_gem_pouch_container: rucksack
gem_pouch_low_value: 5000
gem_pouch_adjective: gem
gem_pouch_noun: pouch

Script arguments:

focus <item>: Performs Appraise Focus on <item> (a specific item, or one of: defense, arcane, recall, logic, offense, magic, khri, inner fire). Requires 200+ Appraisal ranks; reports the result and exits.
nonspecific: When appraising gem pouches, don't use `gem_pouch_adjective` to refer to the pouch.
count: Count the gems in each pouch during pouch appraisal; pouches with fewer than 500 gems are routed to `low_value_gem_pouch_container`. Has no effect (with a warning) if that container isn't configured.

Settings used in this script:

appraisal_training: Ordered list of training tasks to run on a plain call. Valid entries: `gear`, `zills`, `art`, `bundle`, `pouches`, `kit_pouches`.
full_pouch_container: Container holding gem pouches to appraise (used by the `pouches` task).
spare_gem_pouch_container: Container to store empty pouches found during pouch appraisal.
low_value_gem_pouch_container: Container to store low-value pouches (and, with `count`, pouches under 500 gems).
gem_pouch_low_value: Numeric threshold. Pouches appraising below this value are routed to `low_value_gem_pouch_container`. Defaults to 1 if unset.
gem_pouch_adjective: Adjective used for your gem pouch (e.g. `gem` pouch). Ignored if `nonspecific` is used.
gem_pouch_noun: Noun used for your gem pouch (e.g. `pouch`, `satchel`).
gem_kit_name: Container name for a gem kit used by the `kit_pouches` task, which pulls pouches from numbered slots instead of `full_pouch_container`. The task is skipped if this isn't set.

UserVars used in this script:

Other scripts used by this script: study-art


arrows

Creates shaft, arrowheads, and arrows all in one script.

Script usage: Syntax: ;arrows type lumber [tools]

Examples:

;arrows drake-fang maple
;arrows drake-fang balsa tools
;arrows resume

On a normal run, the script ensures you have enough copper on hand, optionally retrieves your tools from the clerk (`tools`), orders lumber if you don't already have any, checks/orders arrow flights and glue, walks to the engineering room, shapes the lumber into shafts, shapes the arrowheads, then calls the shape script to stow the finished arrows. It stores your tools back with the clerk at the end if `tools` was used.

If run with `resume` instead, it skips straight to calling shape with `resume` to continue a shaping session that was previously interrupted, then exits.

Script arguments:

type: The type of arrow to make. One of: cougar-claw, boar-tusk, sabretooth, angiswaerd, hele'la, basilisk, elsralael, soot-stained, ice-adder, jagged-horn, drake-fang.
lumber: The type of lumber to use. Required — there is no default. You can use any lumber type available at the Society store, or your own if you're already holding it.
tools: Optional. Retrieves your shaping tools from the clerk before crafting, and stores them again afterward.
resume: Skips crafting and resumes an interrupted shaping session via the shape script, then exits.

Settings used in this script:

crafting_container: Container used to hold crafting materials (lumber, flights, glue) while crafting.
crafting_items_in_container: Used alongside crafting_container when retrieving/stowing crafting tool items.
shaping_belt: Belt/tool used for shaping. Falls back to engineering_belt if not set.
engineering_belt: Fallback belt used for shaping if shaping_belt isn't set.
force_crafting_town: Overrides your hometown for crafting purposes. Falls back to hometown if unset.
hometown: Your character's home town, used to look up crafting location data (stock room, tool room, glue, etc.) when force_crafting_town isn't set.
engineering_room: The room the script walks to before shaping shafts and arrowheads.

UserVars used in this script:

Other scripts used by this script: go2, clerk-tools, shape


astrology

Trains astrology via by observing a known constellation which fills the most prediction pools and performing predictions aligned to those pools. If your character is above 99th circle the script can also walk the ways to train astrology. Walking is limited to one round-trip per hour.

Script usage: Start in any room where the heavens are observable or where moongate can be cast (if astral traveling).

Run with no arguments for the full training loop, or with `rtr` to only run Read the Ripples:

;astrology
;astrology rtr
  • Example Settings:
astrology_training:
- ways
- observe
- rtr
- weather
- events
- attunement
astral_plane_training:
  train_destination: crossing 
  train_source: shard

have_telescope: true
telescope_name: telescope
#Choose one, container or tie
telescope_storage:
  container:
  tied:

#Choose one, container, tied, or worn
divination_tool:
  name:
  container:
  tied:
  worn:

#Choose one, container or tied
divination_bones_storage:
  container:
  tied:

NOTE: DO NOT INCLUDE THE STUFF UNDER divination_tool or divination_bones_storage IF NOT USING!!

EXAMPLE YAML IF NOT USING:
divination_tool:
divination_bones_storage:

astrology_prediction_skills:
  offense:
  defense:
  magic:
  survival:
  lore:

Script arguments:

rtr: Runs only the Read the Ripples routine instead of the full training loop.

Settings used in this script:

astrology_training: A list of training options. The possible options are ways, observe, rtr, weather, events, and attunement. Things will be trained in the order they are listed.
have_telescope: Set to true to indicate you have a telescope on you and it will be used to observe the heavens.
telescope_name: The item noun of your telescope.
telescope_storage: Where your telescope is stored/retrieved from (container or tied).
astral_plane_training: Hash which contains the settings for astral training.
train_destination: indicate the shard destination in lowercase(this is a town, not the shard name). This is where you will walk to for training. Options are: shard, crossing, leth, riverhaven, merkresh, fang, raven, throne, muspari, aesry, taisgath, theren, steppes
train_source: indicates the shard you wish to return to after arriving at the destination shard, options are the same as in train_destination.
divination_tool: Hash defining a divination tool (name, and container/tied/worn) used instead of predicting bare-handed, if configured.
divination_bones_storage: Hash defining where divination bones are stored (container or tied); if set, bones are used ahead of a divination_tool.
astrology_force_visions: If true, skips bones/divination tool use and always predicts the future directly.
astrology_use_full_pools: If true, requires a prediction pool to reach level 10 before predicting on it (overrides astrology_pool_target).
astrology_pool_target: Minimum pool understanding level (0-10) required before predicting on that pool. Ignored if astrology_use_full_pools is true.
astrology_prediction_skills: Hash mapping offense/defense/magic/survival/lore to the skill name used when predicting against each corresponding pool.
waggle_sets: Shared buff-set setting; the 'astrology' entry defines which spells (including Read the Ripples) get cast before training.

UserVars used in this script:

astral_plane_exp_timer: Set to the current time once you arrive at the shard indicated in train_destination (before walking back). Used to enforce the one-per-hour walking cooldown.
astrology_debug: Set to true to enable verbose debug logging messages.

Other scripts used by this script: bescort, safe-room


athletics

Athletics training script

Script usage: Run with no arguments to auto-train based on your settings (`climbing_target`, `swimming_target`, or your character's town via `athletics_town`/`fang_cove_override_town`/`hometown` - supports Crossing, Riverhaven, Shard, Hibarnhvidar, Ratha). Optional args pick a specific climbing method or modify behavior.

Script arguments:

wyvern: Climb both undergondola and wyvern cliffs.
undergondola: Climb branch etc undergondola.
xalas: Climb xalas instead of undergondola.
stationary: Stand still and use a climbing rope (skips walking to safe_room).
cliffs: Climb undergondola without attempting branch.
max: Keep training until 32/34+ instead of the default ~29 cap.
skip_magic: Skip buffing and pass skip_magic to the outdoorsmanship script.

Settings used in this script:

performance_pause: Seconds to pause after starting the performance script before climbing, to make sure it's playing.
athletics_town: Overrides which town's athletics routine to run (Crossing, Riverhaven, Shard, Hibarnhvidar, Ratha). Falls back to fang_cove_override_town, then hometown.
fang_cove_override_town: Fallback for athletics_town if not set.
hometown: Your character's home town; final fallback for determining the town-based athletics routine.
climbing_target: Key into the climbing practice data; when set, climbs that specific target instead of using town-based logic.
swimming_target: Key into the swimming data; when set (and no climbing_target/relevant args), swims that location's rooms instead.
have_climbing_rope: Set this to true to use a magic climbing rope for training. This currently requires zills.
athletics_outdoorsmanship_rooms: List of rooms randomly walked to before running the outdoorsmanship script during climb wait periods.
held_athletics_items: A list of 1-2 items held while doing athletics to increase the difficulty. Each item adds difficulty. Uses get/stow, and the items don't need to be weapons.
avoid_athletics_in_justice: If true, skips Crossing/Shard climb targets flagged as a justice risk.
climbing_rope_adjective: Adjective of your climbing rope item, used with have_climbing_rope training.
worn_instrument: Instrument you must be wearing to play songs while rope-climbing.
safe_room: Room walked to before rope-climbing, unless the stationary arg is used.

UserVars used in this script:

climbing_song: The song currently used for rope-climbing performance; auto-picked initially, then adjusted up/down based on difficulty feedback.
climbing_song_offset: Set to true once the song has been adjusted for difficulty; enables further song offsetting.
athletics_debug: Set to true to echo extra debug info during rope-climbing.

Other scripts used by this script: buff, outdoorsmanship, performance


attunement

Trains attunement via power walking or perceiving in a single room. Empaths can optionally train empathy via health walking.

Script usage:

  • attunement - run with no arguments to power walk
  • attunement health - run with 'health' argument to health walk (Empaths only)
  • attunement sigil - run sigil walking (Scholarship training) instead of regular attunement walking
  • attunement 15 - Will try to gain 15 mind states before ending
  • attunement rooms=3 - Will only do the skill action (perc, perc sigil, perc health) in 3 rooms max
  • attunement reset - Will start from the start of your room list again.

Script arguments:

Optional
  • health - As an Empath, specify this argument to perform a health walk to train empathy and attunement
  • sigil - Do sigil walking (Scholarship training) instead of regular attunement walking
  • <number> (e.g. 15) - Override the attunement_target_increment setting for this run
  • rooms=<n> - Set the max number of rooms to walk before stopping
  • reset - Reset the room-list starting position back to the beginning

Settings used in this script:

Example Config
# Town to train attunement in.
# Most towns have a pre-defined list of rooms in base-towns.yaml.
hometown: Crossing

# Town to train attunement in if NOT using hometown as your training town.
# This variable is used in other scripts for the same purpose.
# Useful if using Fang Cove as your hometown, since many scripts don't work with that setting.
fang_cove_override_town: Crossing

# These override the default rooms where magic users will visit to
# train attunement via 'perceive' command.
# If not defined then the rooms are taken from base-towns.yaml.
# This is ignored for lunar mages and instead they train in their current room.
# This is useful for power walking near your safe room, such as
# non-justice areas, which may be preferrable to Necromancers
# or if your hometown does not have any room data yet.
attunement_rooms:

# These override the default rooms where Empaths will visit to
# train empathy via 'perceive health' command.
# If not defined then the rooms are taken from base-towns.yaml.
# This is useful if your hometown does not have any room data yet.
perceive_health_rooms:
- 100
- 200
- 300

# These override the default rooms visited for sigil walking (the 'sigil' argument).
# If not defined then the rooms are taken from base-towns.yaml.
sigil_walk_rooms:

# If true then you will perform the perceive commands
# in your current room rather than walk to different rooms.
# This setting is ignored for Lunar mages (Traders and Moon Mages)
# and is treated as if it were set to true.
crossing_training_stationary_skills_only: true|false

# The desired number of mind states to increase by.
# Can be overridden per-run with the numeric argument, e.g. ';attunement 15'.
attunement_target_increment: 17

# The script will cast the spells listed in the 'attunement' waggle
# at the beginning of training.
waggle_sets:
  attunement:
    Aura Sight:
      use_auto_mana: true

UserVars used in this script:

Other scripts used by this script:


autocontingency

Moon Mages only. It can be run two different ways. First, by providing two arguments for a contingency target (anchor), and the room number that anchor will be in. Your character will run to the room in question, and cast both SEER and Contingency on the anchor. i.e. autocontingency Eteu 798. Contingency established, you can then go about your business.

The other method is autocontingency invoke. When run in this manner, typically after a hunt or a long athletics trip to the far side of Elanthia, the script will invoke the Contingency to bring you back to your point of origin.

Script usage: Ensure that a waggle titled `contingency` is present in your YAML. Example below:

  contingency:
   Seer's Sense:
     abbrev: SEER
     recast: 2
     mana: 15
     cambrinth:
     - 5
     - 5
   Contingency:
     abbrev: CONTINGENCY
     recast: 1
     mana: 15
     cambrinth:
     - 7
     - 7

The waggle does not have to include both spell entries, but SEER should only not be included if you are casting that by hand (or in another script) on your anchor target before the Contingency cast. Best practice, include both.

Note: the create-anchor mode (`autocontingency <anchor> <room>`) only proceeds if a currently visible moon with a timer of 32+ is found in `UserVars.moons` (this data is populated by tracking moon positions, e.g. via the moonwatch script). If no such moon is found, the script does nothing — no walking, no casting.

Example YAML usage for including autocontingency as a before in a hunt:

  hunting_info:
  - :zone:
    - rats
    - rats
    - rats
    :duration: 30
    args:
      - d0
      - combat
    before:
    - go2 798
    - autocontingency Etreu
    after:
    - autocontingency invoke
    stop_on:
    - Large Blunt
    - Large Edged
    - Small Edged
    - Staves

Example YAML usage for including autocontingency as part of T2's training_list:

  training_list:
  - skill: 
    - Targeted Magic
    start: 4
    scripts:
    - autocontingency Etreu 798
    - buff main
    - hunting-buddy
    - autocontingency invoke
    - safe-room

Script arguments:

anchor: The name of the item/target to anchor the Contingency to, e.g. `Eteu`. Used together with `room`.
room: The room number to walk to before casting SEER and Contingency on the anchor. Used together with `anchor`.
invoke: Instead of creating a contingency, checks whether Contingency is currently active and invokes it if so (echoes "No contingency" and does nothing if not).

Settings used in this script:

waggle_sets: The `contingency` entry defines the spells (typically Seer's Sense and Contingency) and their cast parameters/cambrinth used when creating the anchor.

UserVars used in this script:

moons: Read-only dependency: the create-anchor mode checks this for a currently visible moon with a timer of 32+ before it will walk/cast. Expected to be kept up to date by a moon-tracking script (e.g. moonwatch).

Other scripts used by this script:


automap

Mapping assistance script

Script usage: Start from an already mapped room. Records the commands you type to move around and maps new rooms as it encounters them. Will update existing paths if traveling through previously mapped areas. Run the script to start recording, then kill it when finished. Do not use your typeahead lines when this is running or you will damage the map.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


autostart

Advanced core lich autostart option - Please be sure you have read the earlier Autostart section explaining the different autostart options before reading this.

Script usage: Often called other autostart, this script allows users to change to the way lich itself is loaded.

THIS IS NOT A TRAINING SCRIPT. EXTREMELY ADVANCED USERS ONLY!!!

DO NOT USE THESE COMMANDS UNLESS YOU INTEND TO EDIT THE VERY FABRIC OF LICH BEHAVIOR. BREAKAGE LIKELY!!

To autoload training scripts on startup such as roomnumbers or sanowret-crystal, please see the correct autostart instructions at the top of this page.

;autostart is part of core lich. It should only be used for scripts that are also a part of core lich.

;e autostart is part of dependency, a lich script, which manages the start up process for scripts that make use of the dr-scripts github repository and common functions defined there.

Use dependency autostart (the second one) for any script on this page. This means you should use ;e autostart 'scriptname' or ;e autostart('scriptname') instead of ;autostart add scriptname

If any of the scripts on this page are in ;autostart list, you should remove them. Try the command ;autostart help if you need help.

Command syntax:

;autostart                              - runs the login routine: starts every script in your YAML `autostarts:` list plus the global/character DB autostart lists
;autostart add <script> [args]          - adds <script> to your character's autostart DB list
;autostart add --global <script> [args] - adds <script> to the global autostart DB list (all characters)
;autostart remove <script>              - removes <script> from your character's autostart DB list (aliases: rem, del, delete)
;autostart remove --global <script>     - removes <script> from the global autostart DB list
;autostart list                         - lists both the global and character-specific autostart DB lists
;autostart help                         - (or any unrecognized input) prints usage

Script arguments:

add: Adds a script (with optional args) to the character or, with --global, the global autostart DB list.
remove: Removes a script from the character or, with --global, the global autostart DB list. Aliases: rem, del, delete.
--global: Modifier for add/remove targeting the global autostart DB list instead of the current character's.
list: Lists the global and character-specific autostart DB lists.

Settings used in this script:

autostarts: Profile YAML list of scripts to start at login. Each entry can be a bare name, "name arg1 arg2", or a {name:, args:} hash.

UserVars used in this script:

autostart_scripts: Legacy/deprecated DR autostart store. Read once on login, compared against the YAML autostarts list and DB lists, and cleared — replaced by the `autostarts` YAML setting and the ;autostart DB list.

Other scripts used by this script: repository, infomon, dependency


avtalia

Traders only. When run, it watches cambrinth defined in avtalia_array:. It maintains a running list of how much mana is in those cambrinth and allows it to be pulled by scripts like combat-trainer when mana is low.

Script usage: Define a list of cambrinth as below:

 avtalia_array:
 - name: cambrinth bracer
   cap: 32
 - name: watersilk bag
   cap: 108
 - name: cambrinth anklet
   cap: 12
 - name: tattered robe
   cap: 50
 - name: cambrinth chains
   cap: 50

Each entry must be unique, all cambrinth must be worn, you must have sufficient Arcana to charge and invoke accurately while worn, and you must not use your primary casting cambrinth you use for other spells.

Script arguments:

window: Toggle a live status window showing mana/cap for each tracked cambrinth. Alternatively, set avtalia_window: true in your YAML.

Settings used in this script:

avtalia_array: Defines the array of worn cambrinth to track (name and cap for each).
avtalia_window: Set to true to show a live status window on startup, same effect as the window argument.

UserVars used in this script:

avtalia: Hash keyed by each cambrinth's name, storing its current mana, cap, and last-seen time. Read by other scripts (e.g. combat-trainer) to pull mana when running low.

Other scripts used by this script:


bankbot

Have a character act as a banker

Script usage: Starting the script requires the `start` argument (a safety confirmation) — running it with no arguments does nothing but parse args. On startup it displays a warning that bankbot is unmaintained/unsupported and may risk account/plat loss, then pauses itself; you must manually unpause the script to continue.

;bankbot start
;bankbot start announce
;bankbot start announce greet

Once running, it sets `avoid !all` and `avoid whispering`, then listens for TIP offers (deposits) and whispered commands from other characters:

help
bal | balance
with[draw] <amount> <currency>
with[draw] all <currency>
transfer <amount> <currency> <destination>
transfer all <currency> <destination>
where | room | location

The same balance/help/transfer/location commands can also be sent via LNet private message (`;chat to <bankbot character> <command>`). The script exits immediately if it detects a pickpocket attempt against it.

Script arguments:

start: Required. Confirms you intend to start bankbot (prevents accidentally starting it).
announce: Optional. If present, bankbot announces its presence on LNet.
greet: Optional. If present, bankbot greets each character once after validating them.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


bescort

A script for navigating certain problematic areas like swamp mazes, the wilds, and some river swims. Mostly used by other scripts. Can also be used for astral traveling.

Script usage: Start this script with no arguments to see a list of supported areas and destinations.

Script arguments:

wilds: The Leucro and Geni wilds on the NTR. mode options: exit, leucro1, leucro2, geni.
oshu_manor: The Seordhevor kartais & grave worms in Oshu'ehhrsk Manor, near germish'din on the STR. mode options: exit, worms, kartais.
faldesu: The Faldesu river at the end of the NTR. mode options: haven, crossing.
zaulfang: For crossing the Zaulfang swamp maze outside Haven. mode options: exit, enter.
gate_of_souls: For crossing the Blasted Plain between the Gate of Souls and Temple of Ushnish. mode options: exit, blasted, temple, fangs, fou.
segoltha: The Segoltha river south of the Crossing. mode options: north, south, west.
crocs: Blue belly crocodiles on the NTR. mode options: enter, exit.
ways: Astral travelling. mode options: aesry, crossing, fang, leth, merkresh, muspari, raven, riverhaven, shard, steppes, taisgath, theren, throne, velatohr.
mammoth: The mammoths between Acenamacra, Fang Cove, and Ratha. mode options: acen, fang, ratha.
iceroad: The ice road between Shard and Hibarnhvidar. mode options: shard, hibarnhvidar.
basalt: The ferry (Crawling Plague) between Ratha and Necromancer Island. mode options: island, ratha.
balloon: The air ship between Langenfirth and Mriss. mode options: langenfirth, mriss.
dirigible: The air ship between Shard and Aesry. mode options: shard, aesry.
airship: The airship between Crossing and Muspari. No mode needed.
therenropebridge: The rope bridge between Theren and Rossman's Landing. mode options: totheren, torossman.
gondola: Gondola between Shard and Leth Deriel. mode options: north, south (direction of travel).
fly_under_gondola: Uses a flying mount to fly under the gondola obstacles as a shortcut between Shard and Leth Deriel. mode options: north, south.
sandbarge: The sand barge between Hvaral, Oasis, and Muspari. Takes two args instead of mode: start_location and end_location (options: hvaral, oasis, muspari).
desert: Hidasharon Desert on Mriss for hunting armadillos. mode options: adult, juvenile, elder, oasis, exit.
velaka: The Velaka desert, containing zombie nomads and westanuryn. mode options: nomads, westanuryn, slavers, exit.
velaka_dunes: Wander the Velaka dune maze between the oasis, sandbarge, yeehars (canyon) and desert maze to hvaral (valley). mode options: oasis, barge, canyon, valley.
ferry: Ferry between Leth Deriel and the Crossing. mode options: leth, crossing.
ferry1: Ferry between Hibarnhvidar and the Ain Ghazal. mode options: hibarnhvidar, ainghazal.
lang_barge: Barge between Langenfirth and Riverhaven. No mode needed.
shard_gates: Use the Shard gates. No mode needed.
thief_guild: Enter the Shard thieves guild (requires shard_thief_password to be set correctly). No mode needed.
abyss: Use the Cleric entrance to the Abyss; requires Resurrection. No mode needed.
haven_throne: Ferry between Riverhaven and Throne City. No mode needed.
hvaral_passport: Handles renewing/obtaining the passport needed for the gate between Hvaral and Muspari. No mode needed.
hara_polo: Traverse the Polo Maze. mode options: up, down, hunt.
jolas: Ride The Jolas between Hara'jaal and Mer'Kresh. mode options: harajaal, merkresh.
currach: Row a currach between Halasa Temple and Aesry Surlaenis'a. mode options: halasa, aesry.
galley: Take the M'riss-Mer'Kresh galley. mode options: mriss, merkresh.
cave_trolls: Enter the cave trolls hunting area beyond the stream. mode options: enter, exit.
asketis_mount: Climb up or down Asketi's Mount to Black Marble Gargoyles. mode options: up, down.
coffin: Enter the abyss via the coffin puzzle for lanky grey lachs, et al. No mode needed.
eluned: Enter the Crystal Cavern of Eluned. No mode needed.

Settings used in this script:

flying_mount: Type of flying mount you own (e.g. broom, carpet, rug, phoenix feather, dirigible, cloud), used to bypass athletics/swimming on several routes (segoltha, faldesu, iceroad, cave_trolls, fly_under_gondola, etc).
mountable_item: Item noun used to mount/activate your flying mount. Falls back to flying_mount if not set.
mountable_verb: Verb used to activate a 'cloud' type flying mount.
mountable_dismount: Verb used to dismount a 'cloud' type flying mount.
footwear: Item worn on your feet that gets removed before putting on skates for the iceroad route, and re-worn afterward.
shard_thief_password: Password used to enter the Shard thieves guild (thief_guild).
bescort_fare_handling: If true, allows the script to walk to a bank and withdraw money automatically to cover public transportation fares when you can't afford one.
bescort_hide: If explicitly set to false, disables the script's automatic hide attempts while waiting for/boarding transports.
hometown: Temporarily overwritten with the fare town during automatic fare handling, so money is withdrawn from the correct town's bank.

UserVars used in this script:

citizenship: If set to 'Zoluren', skips the gold-on-hand check for the Crossing<->Leth Deriel ferry (the ferry argument). Not related to the Shard gates.
known_shards: Cache of shard names your character has already identified via 'recall heavens grazhir'; used by astral walking (ways) to avoid re-identifying a known destination shard.
bescort_debug: If true, echoes extra debug info (e.g. boat trip timing, room objects) on a couple of routes (basalt, ferry1).

Other scripts used by this script: oshu_manor


bolts

Creates shaft, boltheads, and bolts all in one script.

Script usage: Syntax: ;bolts type lumber [tools]

Examples:

;bolts drake-fang maple
;bolts drake-fang balsa tools
;bolts continue

On a normal run, the script ensures you have enough copper on hand, optionally retrieves your tools from the clerk (`tools`), orders lumber if you don't already have any, checks/orders bolt flights and glue, walks to the engineering room, shapes the lumber into shafts, shapes the boltheads, then calls the tinker script to stow the finished bolts. It stores your tools back with the clerk at the end if `tools` was used.

If run with `continue` instead, it skips straight to calling tinker with `resume` to continue an interrupted tinkering session, then exits.

Script arguments:

type: The type of bolt to make. One of: cougar-claw, boar-tusk, sabretooth, angiswaerd, hele'la, basilisk, elsralael, soot-stained, ice-adder, jagged-horn, drake-fang.
lumber: The type of lumber to use. Required — there is no default. You can use any lumber type available at the Society store, or your own if you're already holding it.
tools: Optional. Retrieves your shaping tools from the clerk before crafting, and stores them again afterward.
continue: Skips crafting and resumes an interrupted tinkering session via the tinker script, then exits.

Settings used in this script:

worn_trashcan: Worn trashcan item used to dispose of a depleted glue stick.
worn_trashcan_verb: Verb used with worn_trashcan to dispose of items (e.g. put/toss).
crafting_container: Container used to hold crafting materials (lumber, flights, glue) while crafting.
crafting_items_in_container: Used alongside crafting_container when retrieving/stowing crafting tool items.
tinkering_belt: Belt/tool used for tinkering. Falls back to engineering_belt if not set.
engineering_belt: Fallback belt used for tinkering if tinkering_belt isn't set.
force_crafting_town: Overrides your hometown for crafting purposes. Falls back to hometown if unset.
hometown: Your character's home town, used to look up crafting location data (stock room, tool room, glue, etc.) when force_crafting_town isn't set.
engineering_room: The room the script walks to before shaping shafts and boltheads.

UserVars used in this script:

Other scripts used by this script: go2, clerk-tools, tinker


buff

Casts waggle sets defined in your yaml. Casts the default: waggle set if no args are given.

Script usage: See also: https://github.com/elanthia-online/dr-scripts/wiki/Waggle-Sets

;buff                    - casts the 'default' waggle set
;buff <setname>          - casts the named waggle set instead of default
;buff list               - lists the names of all waggle sets defined in your YAML, then exits
;buff set=<setname>      - lists the spells contained in the named waggle set, then exits (does not cast)
;buff <setname> force    - forces every spell in the set to recast even if already active
;buff <setname> strict   - keeps recasting until every spell in the set is active. BE CAREFUL, this can loop.

Script arguments:

spells: The name of the waggle set to cast (positional, bare word). Defaults to 'default' if omitted.
list: Lists the names of all defined waggle sets, then exits.
set=<name>: Lists the spells contained in the named waggle set, then exits. Informational only — does not cast.
force: Forces every spell in the selected set to be recast even if currently active.
strict: Keeps recasting the selected set until every spell in it is active. Use with caution — can loop indefinitely.

Settings used in this script:

waggle_sets: Hash of named spell sets. Each set maps spell names to their cast data (abbrev, mana, cambrinth, recast, etc). See the linked Waggle-Sets wiki page for format.

UserVars used in this script:

Other scripts used by this script:


burgle

Breaking and Entering - Used to train Thievery, Stealth, and depending on entry method, 1 of Athletics (rope) / Locksmithing(lockpick). Extremely high fines if you are caught. Be sure to read the Breaking and Entering page to understand how the system works prior to using this script.

Script usage: Script can be started anywhere that can path the room you set in the settings.

  • Example Settings:
# Turn on Burgle inside crossing_training. Attempts to use ;burgle during Athletics, Locksmithing, Thievery, or Stealth
# Uses burgle_settings for entry method then continues to alternate methods such as climbing, picking shop stealing, etc.
train_with_burgle: true

#Plead guilty for lower fines if caught in normal justice.
guilty_plea: guilty

# Required only if using loot: trashcan below.
worn_trashcan:
worn_trashcan_verb:

burgle_settings:
  room: nnn                                 # pick your own room, you should pick a room that no guard will ''ever'' enter.  Picking rooms guards can come to is a failure on setup, not the script.
  entry_type: lockpick                      # lockpick | rope | cycle | prioritylockpick | priorityrope
  max_priority_mindstate: 26                # only used if priority setting for entry_type is used.  Sets max mindstate value before switchover to other entry_method. Default: 26
  rope_adjective: heavy                     # adjective of your entry rope. Default: heavy
  use_lockpick_ring: true                   # if you use a worn lockpick stacker
  lockpick_container: lockpick ring         # name of your lockpick stacker
  max_search_count: 2                       # max number of total searches to do including retries
  retry: false                              # retry if you don't find loot.  default: false
  loot: keep                                # drop | keep | bin | pawn | trashcan   default: keep
  loot_container: duffel bag                # container to keep loot in while burglering
  safe_mode: true                           # stop searching and try to get out as quickly as possible when hearing footsteps.  Default: true
  stealth_inside: true                      # sneak/stay hidden while moving and searching inside the house. Default: true. (The hide needed to enter is always attempted regardless.)
  prioritize_rooms:                         # array of room types to search first (Kitchen, Bedroom, Armory, Library, Sanctum, Work Room). If set, maps the house first, then searches in priority order.
  room_priority_type: any                   # any (discovery order, default) | inorder (respects the listed order of prioritize_rooms)
  room_blacklist:                           # array of rooms to ignore. Case sensitive.
  item_whitelist:     # array of **full item names** (adj + noun) of items to keep no matter what.  Case Sensitive.  Default: empty list
    - blunt-tipped arrows   # armory - non-lodging ammo
    - blunt-tipped bolts    # armory - non-lodging ammo
    - blunt stones          # armory - non-lodging ammo
    - keepsake box          # bedroom - limited use (35) locksmithing trainer
    # - mixing bowl           # kitchen - alchemy tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - mixing stick          # kitchen - alchemy tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - rustic mortar         # kitchen - alchemy tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - rustic pestle         # kitchen - alchemy tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - mesh sieve            # kitchen - alchemy tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - butcher's knife       # kitchen - wrist worn 'belt' knife
    - worn book             # library - scroll stacker (15 page, 10 copies per page)
    # - contract case         # library - Trader Jewelry
    # - dainty cowbell        # library - wrist worn weatherproof instrument
    # - writing quill         # library - writing instrument (ledgers, etc)
    # - thumb ring            # library - Trader Jewelry
    # - glass lens            # sanctum - minion identifier
    # - letter opener         # sanctum - belt worn belt knife
    - memory orb            # sanctum - random skill absorber
    # - crystal prism         # sanctum - divination tool
    # - celestial charts      # sanctum - divination tool
    # - tool case             # work room - belt worn lockspick stacker - 25 ct
    # - stirring rod          # work room - forging tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - carving knife         # work room - shaping tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - wood shaper           # work room - shaping tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - metal rasp            # work room - shaping/carving tool: 12/12 MC. 11/18 durability, 5/11 speed
    # - imbuement rod         # work room - enchanting tool
    # - !ruby/regexp '/\S+ fabric/'  # Bedroom - illustrates REGEX syntax for items
  before:                                   # array of scripts to run, similar to hunting-buddy, before the burgle (will be called right before buffing)
    - yourscripthere with args here
  after:                                    # array of scripts to run, similar to hunting-buddy, after the burgle, (will be called right before script ends)
    - anotherscript here
waggle_sets:
  burgle:
    - Silence
    - Hasten
    - Plunder
    - Slight

Script arguments:

start: Required to run the script. Protects against accidental starting/typos.
entry: Optional. Override yaml setting for entry_type. Valid options are: lockpick, rope, cycle, prioritylockpick, priorityrope.
roomid: Optional. Override yaml setting for room to burgle from.
loot_type: Optional. Override yaml setting what to do with loot. Items in your item_whitelist are always kept. Valid options: drop, keep, pawn, bin, trashcan (trashcan requires worn_trashcan/worn_trashcan_verb to be set).
hometown: Optional. Override yaml hometown setting when using pawn or bin options.
follow: Optional. Puts brugle into group follow mode. To be used when you've already joined someone to do a group burglary. This will buff, then hide if needed and then wait for the leader to burgle. Will attempt to leave the group if you are following once in, to prevent getting lost.

Settings used in this script:

worn_trashcan: Top-level (not under burgle_settings) worn trashcan item. Required if loot/loot_type is set to trashcan.
worn_trashcan_verb: Top-level verb used with worn_trashcan (e.g. put/toss). Required if loot/loot_type is set to trashcan.
burgle_town: Top-level town used for the bin/pawn destination if burgle_settings:hometown isn't set. Falls back to fang_cove_override_town, then hometown.
fang_cove_override_town: Fallback for burgle_town if not set.
hometown: Final fallback town for the bin/pawn destination if none of the above are set.
use_lockpick_ring: Deprecated top-level fallback for burgle_settings:use_lockpick_ring, only used if that isn't set (a warning is echoed when this triggers). Set burgle_settings:use_lockpick_ring instead.
lockpick_container: Deprecated top-level fallback for burgle_settings:lockpick_container, only used if that isn't set (a warning is echoed when this triggers). Set burgle_settings:lockpick_container instead.
burgle_settings: Hash of all the burgle settings
burgle_settings:room: The Room id that burgle should be done in. Guards should never come to this room, so pick carefully
burgle_settings:entry_type: The type of entry - rope or priorityrope or lockpick or prioritylockpick or cycle You must have a heavy rope if using rope or cycle. You must have a lockpick, or a worn lockpick stacker with lockpicks on it if using lockpick or cycle. You must have both if you are using the prioritylockpick or priorityrope settings. the priority settings will use that entry method unless your mindstate is above the max value.
burgle_settings:max_priority_mindstate: Tha maximum mindstate to use when using one of the priority entry settings, before switching to the other entry method.
burgle_settings:rope_adjective: Adjective of your entry rope, e.g. 'heavy'. Defaults to 'heavy' if not set.
burgle_settings:use_lockpick_ring: true or falseCheck for a lockpick ring/stacker if using lockpick as entry_type. true or false
burgle_settings:lockpick_container: The name of your lockpick ring/stacker.
burgle_settings:hometown: Overrides the town used for the bin/pawn destination for this script specifically, taking priority over the top-level burgle_town/fang_cove_override_town/hometown settings (but not the `hometown` command-line argument).
burgle_settings:max_search_count: Limits the number of searches you do. Setting this too high will result in arrest, and large fine. Start low and increase as needed.)
burgle_settings:retry: Retry searches if you don't find loot. true or false
burgle_settings:loot: What to do with loot. Supported options: drop, keep, pawn, bin, trashcan. Note that you will always attempt to store loot while in the house, to avoid problems inside with items with custom drop scripts. bin is only supported for thieves. trashcan requires the top-level worn_trashcan/worn_trashcan_verb settings.
burgle_settings:loot_container: Where to put loot while in the house. This is required as the script will not attempt to drop loot in the house.
burgle_settings:safe_mode: Stop searching and try to get out as quickly as possible when hearing footsteps. true or false
burgle_settings:stealth_inside: Whether to sneak/stay hidden while moving and searching inside the house. Defaults to true. The hide needed to enter the house is always attempted regardless of this setting.
burgle_settings:prioritize_rooms: List of room types (Kitchen, Bedroom, Armory, Library, Sanctum, Work Room) to search first. If set, the script maps the whole house first (a recon pass) so it can search these in priority order.
burgle_settings:room_priority_type: How to order prioritize_rooms: any (discovery order, default) or inorder (respects the listed order of prioritize_rooms, even if slower to reach).
burgle_settings:room_blacklist: List of room types (using Sentence Case) that you don't want to search for loot in.
burgle_settings:item_whitelist: List of full item names (adj + noun) that you want to keep regardless of any other setting.
burgle_settings:before: List of scripts you want to run before burglary. This is run right before the waggle set.
burgle_settings:after: List of scripts you want to run after burglary. This is run right after the burglary before processing the loot.
waggle_sets['burgle']: Optional. A waggle set called 'burgle' to cast right before burglary.

UserVars used in this script:

Other scripts used by this script: jail-buddy, buff


carve

Carves an item (from a crafting book recipe) using stone/bone materials, automatically switching between your main carving tool, rifflers, rasp, and polish as the item progresses, and stamping the finished item if configured.

Script usage: Normal carve, from a recipe in your book:

;carve <chapter> "<recipe name>" <material> <type> <noun>

`type` describes the form of the raw material you're carving from: stack, rock, stone, pebble, boulder, or deed.

Resume an interrupted carve on an item already in progress:

;carve resume <type> <noun>

Here `type` is just bone or stone (which tool category the item needs). The script retrieves the item, analyzes it to determine the next step, and continues carving.

The script buffs via the 'carve' waggle set at startup, and stamps the finished item with your `mark_crafted_goods` stamp if that setting is configured.

Script arguments:

chapter: Chapter number in your carving book containing the recipe.
recipe_name: Name of the recipe. Wrap in double quotes if it's multiple words.
material: Type of stone/bone to use.
type: Form of the raw material. One of: stack, rock, stone, pebble, boulder, deed.
noun: Noun of the item being carved.
resume: Resume carving an item already in progress instead of starting a new one from a recipe.

Settings used in this script:

crafting_container: Container used to hold crafting materials/tools while carving.
crafting_items_in_container: Used alongside crafting_container when retrieving/stowing crafting tool items.
carving_belt: Belt/tool used for carving. Falls back to engineering_belt if not set.
engineering_belt: Fallback belt used for carving if carving_belt isn't set.
mark_crafted_goods: If set, the finished item is stamped with your stamp tool at the end of carving.
crafting_training_spells: List of training spells to release (spell, mana, symbol) as part of cleanup when finishing an item.
master_crafting_book: If set, uses the two-step master book recipe lookup instead of retrieving a separate carving book from your crafting container.
engineering_tools: List of your engineering tools; used to find your saw/chisel. Takes priority over carving_tools if both are set.
carving_tools: List of your carving tools; used to find your saw/chisel if engineering_tools isn't set.

UserVars used in this script:

Other scripts used by this script: buff


carve-bead

Automates the creation of a prayer bead, either from a held block or foraged and crafted block.

Script usage: Run the script to create a prayer bead based on config information. If started while holding a block, will use that block, otherwise forages and creates one. Will use primer if configured, but not buy you one.

Script arguments:

debug: Optional. Forces script into debug mode
primer: Optional. Override yaml setting for primer use.
aspect: Optional. Override yaml setting for animal to carve.
help: Optional. Displays usage information and exits

Settings used in this script:

carve-bead: Main setting block which holds the other settings.
carve-bead:debug: Turns on debug logging
carve-bead:primer: True/False for if a primer should be used. Defaults to false.
carve-bead:knife-adjective: Optional. Adjective for the knife to use for carving, if not 'carving'.
theurgy_supply_container: Container holding your theurgy supplies (water holder, primer, etc.).
immortal_aspect: The animal aspect to carve into the bead (e.g. boar, ram, panther). Overridable via the aspect argument.
crafting_container: Container used to hold crafting materials/tools (knife, shaper) while crafting.
crafting_items_in_container: Used alongside crafting_container when retrieving/stowing crafting tool items.
carving_belt: Belt/tool used for carving. Falls back to engineering_belt if not set.
engineering_belt: Fallback belt used for carving if carving_belt isn't set.
water_holder: Container/item holding holy water, used to bless the foraged limb when making a new block.
crafting_training_spells: List of training spells. Read into the script but doesn't appear to affect any behavior in this version (no cleanup routine uses it here).

UserVars used in this script:

Other scripts used by this script:


carve-lockpicks

Carves lockpicks from keyblanks on your person, then puts those lockpicks on rings.

Script usage: Store the keyblank pockets in any open container. Designate via yaml settings below a bag for your grandmaster's picks, master's picks, and anything less than master's (professional, ordinary, etc). Place rings for each type(master/grandmaster) in the same bag you designate for the completed picks.

;carve-lockpicks

  • Runs the main carving loop: buffs (if needed), draws keyblank pockets, carves lockpicks, and sorts/rings the results, until pockets run out.

;carve-lockpicks ring

  • Put completed batches of lockpicks on rings, need rings in the same bag as the lockpicks (grands rings in grands bag). Not necessary if you have the yaml setting true below:

;carve-lockpicks ratio_last

  • Displays most recent percentage of grandmaster to master picks carved from last run

;carve-lockpicks ratio_all

  • Displays overall percentage of grandmaster to master picks carved from all runs

;carve-lockpicks ratio_reset

  • Delete all past recorded carving projects data

;carve-lockpicks buy_rings <pockets> <masters_ordinal> <grands_ordinal>

  • Buys empty lockpick rings from a shop, split between master's and grandmaster's based on your recorded grands_ratio history (or an even split if you have no history yet), then exits. `pockets` is roughly how many keyblank pockets you plan to carve; `masters_ordinal`/`grands_ordinal` pick which numbered shop listing to buy from.

Any other/unrecognized input (including ;carve-lockpicks help) falls through to the script's built-in usage summary and exits.

Script arguments:

ring: Put completed batches of lockpicks on rings, need rings in the same bag as the lockpicks (grands rings in grands bag). Not necessary if ring_picks is set true in your YAML.
ratio_last: Displays most recent percentage of grandmaster to master picks carved from last run, then exits.
ratio_all: Displays overall percentage of grandmaster to master picks carved from all runs, then exits.
ratio_reset: Deletes all past recorded carving projects data, then exits.
buy_rings: Switches to ring-buying mode instead of carving. Used together with pockets, masters_ordinal, and grands_ordinal.
pockets: Number of keyblank pockets you're planning to carve, used to size the ring purchase in buy_rings mode.
masters_ordinal: Ordinal (first, second, etc.) selecting which master's lockpick ring listing to buy from the shop, in buy_rings mode.
grands_ordinal: Ordinal (first, second, etc.) selecting which grandmaster's lockpick ring listing to buy from the shop, in buy_rings mode.

Settings used in this script:

Settings below are required to use the script, defaults are NOT in base:
lockpick_carve_settings:
      grand_container: #bag for complete grandmaster's lockpicks
      master_container: #bag for completed master's lockpicks
      trash_container: #bag for anything less than master/grandmaster, blank to dispose
      pocket_container: #source of fresh keyblank pockets (required)
      initial_grand: #true/false as to whether to initial your grandmasters' lockpicks
      full_rings_container: #bag for full rings, can't be either grand/master bag
      ring_picks: #true/false as a default to put carved picks on rings
      carve_past_ring_capacity: #true/false to continue carving after you've run out of lockpick rings

# Required if trash_container is blank, so trashed picks/pockets have somewhere to go:
worn_trashcan:
worn_trashcan_verb:

crafting_container: Container used to hold crafting materials/tools (carving knife) while crafting.

crafting_items_in_container: Used alongside crafting_container when retrieving/stowing crafting tool items.
carving_belt: Belt/tool used for carving. Falls back to engineering_belt if not set.
engineering_belt: Fallback belt used for carving if carving_belt isn't set.
waggle_sets: The 'carve' entry's non-attack Khri spells are checked before carving; if any aren't active, the buff script is run with the 'carve' waggle set before continuing.
worn_trashcan: Worn trashcan used to dispose of unmatched/lesser picks and empty keyblank pockets when trash_container isn't set.
worn_trashcan_verb: Verb used with worn_trashcan for disposal.

UserVars used in this script:

grands_ratio: Hash of timestamp -> grandmaster's percentage, recorded at the end of each run. Used by ratio_last/ratio_all/ratio_reset and to weight buy_rings purchases.

Other scripts used by this script: buff


cast

Automates command line casting.

Script usage: Review lich code. User guide and extensive documentation in header comments. Methods to run script;

;cast abbrev [total_mana] [target] [-charge=??] [-prep_time=??] [-runestone=??] [-symbiosis] [-force] [-wait] [-MODE] [-debug]

Script arguments:

abbrev: Spell name, abbreviation, or alias to cast
total_mana: How much TOTAL mana to use for the cast, or the literal word 'discern' to have the script discern the spell and calculate an amount (honoring prep_scaling_factor). Defaults to a saved/alias value, or 1 mana if none.
target: What target to CAST at
-charge=??: Number of charges OR budget in seconds for charging
-prep_time=??: How many seconds to prep before casting
-runestone=??: Invoke this runestone (or similar item) to prep
-symbiosis: Prepare (or not) with your currently studied symbiosis
-force: Force the cast even if checks should prevent it
-wait: If below attune/conc/fatigue thresholds, wait to cast
-MODE: Options: -save[=??], -test, -clear, -yaml (see documentation)
-debug: Output debug messages

Settings used in this script:

ritual_focus: Focus to use for ritual spells. Won't cast rituals without.
prep_scaling_factor: Number from 0-1 to multiply by discerned max prep.
cambrinth_num_charges: Default number of camb charges if not specified.
cast_attunement_threshold: Don't cast unless attunement is above this
cast_concentration_threshold: Don't cast unless concentration is above this
cast_fatigue_threshold: Don't cast unless fatigue is above this
cast_threshold_delay: How many seconds between checks when waiting
cambrinth_items: An array of cambrinth items, each with:
cambrinth_items.name: Adjective + noun of the item
cambrinth_items.cap: Mana capacity
cambrinth_items.stored: True: must be held, false: worn
cambrinth: Adjective + noun of single camb item
cambrinth_cap: Mana capacity
stored_cambrinth: True: must be held, false: worn

UserVars used in this script:

cast_data: Hash storing per-spell (and per-alias) saved default parameters set via -save/-save=??. Automatically applied on future casts of that spell/alias, and removed via -clear.

Other scripts used by this script:


charge-elemental-charge

Charges elemental charge for warrior mages to the level specified, defaults to level 6: "A charge circulates through your body, causing a low hum to vibrate through your bones."

Script usage: Run it as an independent script, or place it in T2 before a hunt to ensure proper charge level for pathways and summoning training. If `elemental_charge_room` isn't set, the script echoes a message and exits without doing anything.

Script arguments:

Settings used in this script:

elemental_charge_room: Setting to determine what room to go to to charge.
elemental_charge_minimum_level: The minimum level to charge the elemental charge to. Defaults to 6 if not set.

UserVars used in this script:

Other scripts used by this script:


charge-holy-weapon

Charges holy weapon if below 200 estimated remaining uses. Usable in Crossing or Shard Chadatru temples, or in a player-specified room using a holy icon. There is a large cooldown, and if too low circle & charisma, this could be bad. Best used independently on lower circle Paladins.

Script usage: Run it as a before or after within training manager, as a normal part of T2's system, or as an independent script. Exits immediately if you're not a Paladin. Checks your weapon's glow description to estimate remaining charges (barely detectable/flickering triggers a recharge; barely glowing/faintly/shining/emanating/blinding are skipped as having enough charges left, roughly 200/350/500/1000/1500+ respectively) unless `force` is used. To recharge: if no `icon_name` is configured, it walks to your hometown's chapel altar and prays Chadatru; if `icon_name` is set, it instead walks to `icon_room`, retrieves and uses the icon (cleaning, hugging, focusing, praying), then glyphs renew on the weapon either way.

Script arguments:

force: Skip the remaining-charge check and force a recharge attempt regardless of the weapon's current glow.

Settings used in this script:

hometown: Used to look up your hometown's chapel altar room (holy_weapon_altar) when no icon_name is configured, and in status messages.
holy_weapon: Main setting which holds the other settings.
holy_weapon:weapon_name: Name of the holy weapon, MUST match gear setting entry exactly.
holy_weapon:icon_name: Name of the icon to use for the ritual.
holy_weapon:icon_container: Name of the container which holds the icon, optional.
holy_weapon:icon_room: Room number to use for the icon ritual.

UserVars used in this script:

Other scripts used by this script:


chop-wood

Chops trees in a room while watching for danger

Script usage: Watches and chops out your current room, stowing or deeding anything in your tree list. Will run to a healer if injured.

Script arguments:

Settings used in this script:

lumber_implement: The weapon/tool (e.g. axe) to wield for chopping.
lumber_buddy_tree_list: List of item names to look for and stow (or push with a packet, if lumber_use_packet is set) from the room after each chop.
lumber_use_packet: If true, uses a held packet to push matched tree-list items away instead of stowing them directly.

UserVars used in this script:

Other scripts used by this script: safe-room


circlecheck

Circle check tells you how far you are from your next or target circle.

Script usage: Display circle progress:

  • ;circlecheck

Display only skills needed for the next circle:

  • ;circlecheck short
  • ;circlecheck brief
  • ;circlecheck next

Display progress towards circle 35

  • ;circlecheck 35

Script arguments:

debug: Turns on debugging messages.
short: Uses short output mode, aliases brief, next
target: Display progress towards target circle.

Settings used in this script:

circlecheck_prettyprint: If true, displays a column-formatted table (skill/category/circle/ranks needed) instead of the plain-text line-per-skill output.

UserVars used in this script:

Other scripts used by this script:


cleric-quests

Automatically does cleric quests you are eligible for. Currently does tamsine, eluned, eluned2, kertigen, hodiera, meraud, and glythtide commune quests if you are the right level.

Script usage: Requires being a Cleric (exits with an error otherwise). On startup it checks your circle and automatically runs the matching quest:

Circle 2  - tamsine
Circle 3  - eluned
Circle 8  - kertigen
Circle 12 - hodierna
Circle 15 - eluned2
Circle 20 - meraud
Circle 35 - glythtide

If your circle doesn't match one of those exactly, it echoes an error and does nothing. Each quest walks/acts through its own fixed sequence and echoes 'All done!' on completion; a couple (glythtide) will exit early with a message if you've done part of the quest too recently to continue.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


coordinator

Training manager script

Script usage: Task scheduler that runs hunting, town, and cleanup tasks in priority order (cleanup > town > hunting > default hunting > idle), looping until stopped. Tasks and their start/stop predicates come from the `coordinator_hunting_tasks`, `coordinator_town_tasks`, and `coordinator_hunting_cleanup` YAML lists.

Each task's `start_on`/`stop_on` predicate can use: `or`, `and`, `skill_less_than`/`skill_under`, `skill_over`, `any_skill_less_than`/`any_skill_under`, `after_every_hunt`, `on_first_run`, `boxes_over`, `boxes_under`, `encumbrance_over`, `timer` (persists globally via UserVars if `global: true`, otherwise per-run), and `predicate` (restricted to the whitelisted `hunt_done?` and `run_crossing_training?`).

A town task runs either a whitelisted built-in `action` (`pick_boxes`, `train_performance`, `train_outfitting`, `train_engineering`, `train_forging`, `train_alchemy`, `crossing_training`, `infuse_osrel`, `check_favors`) or an arbitrary `script`/`args` you specify in YAML. A hunting task runs hunting-buddy with a given file, walking to a safe room afterward. If no task's predicates are met, it walks to your safe room and starts afk as an idle fallback.

Script arguments:

Settings used in this script:

coordinator_hunting_tasks: List of hunting task definitions (file, start_on/stop_on predicates, etc.).
coordinator_town_tasks: List of town task definitions (action or script/args, walk_to, buff, predicates, etc.).
coordinator_hunting_cleanup: List of cleanup task definitions run after a hunting task, unless that task sets no_cleanup.
safe_room: Default safe room walked to for idle fallback, after a hunting task, and used by a town task's walk_to: safe_room.
crossing_training: List of skills used by the run_crossing_training? predicate and the crossing_training action, trained until each reaches 28 xp.
lockpick_room_id: Room to walk to before picking boxes, for the pick_boxes action.
waggle_sets: The 'locksmithing' entry, if present, triggers a buff (locksmithing) before the pick_boxes action.
osrel_amount: Mana amount used to infuse Osrel Meraud for the infuse_osrel action. Required (with an active Osrel Meraud) for that action to do anything.
osrel_no_harness: If true, disables harnessing during infuse_osrel.
favor_goal: Target favor count for the check_favors action; the action does nothing if unset.
favor_god: Deity name used to tap/rub the orb for the check_favors action.
cleaning_cloth: Cloth item used to clean/dry zills during performance training.

UserVars used in this script:

coordinator_timers: Hash of global timer keys to their reset times, used by 'timer' predicates with global: true so timers persist across runs.
song: Tracks the currently selected performance song, cycling through the song list as needed during performance training.

Other scripts used by this script: afk, buff, release-necro, hunting-buddy, pick, workorders, sell-loot, crossing-training, favor, safe-room, sanowret-crystal


combat-trainer

Train combat skills in your current room.

Script usage: Trains combat skills in your current room, maintains listed buffs, uses TM/debil as specified, trains certain non combat actions on timers. Skins, loots.

Script arguments:

d#: Dance threshold, keep N mobs alive to train defenses against, where dN is the provided argument.
r#: Retreat threshold, stay at missile range when N mobs are present and use ranged combat options, where rN is the provided argument.
construct: overrides empath non attack settings.
debug: Enables debug mode.
custom: Extra arguments will be used to load in extra yaml files. ;combat-trainer back would load in YourName-back.yaml.
undead: Allows an empath to hunt undead NPCs, treating offense as allowed while the Absolution spell is active.
innocence: Allows an empath using the Innocence spell to avoid taking actions that would end the spell.

Settings used in this script:

aiming_trainables: Lets you train weapons in the offhand while aiming crossbows, slings, and bows. The weapon must be usable in the offhand for attacking/throwing, swappables are supported. Large weapons require weapons prime, and other conditions need to be met, etc. It works in conjunction with the settings attack_overrides (hurl/invoke supported) and using_light_crossbow.
using_light_crossbow: Lets you designate that your Crossbow is light, this enables swinging attack options with aiming_trainables.
storage_containers: List of containers to make sure are open before starting hunting.
dance_threshold: Same as d# argument.
retreat_threshold: Same as r# argument.
dance_skill: Weapon skill to have active when dancing with enemies, ideally allows parry. Note this is the SKILL not the weapon.
combat_trainer_action_count: Cycles to next weapon after specified number of actions (generally offensive actions).
combat_trainer_target_increment: Number of mind states of exp to get before cycling weapons.
weapon_training: Hash of weapon skills to the weapon names that you use to train that skill. Brawling should map to an empty string. This controls what weapons are cycled through for training.
gear_sets:standard: A list of ADJ NAME for each item that should show up in INV COMBAT when you're ready for combat. If it shows up in inv combat it must be here. This gear set will be equipped at the start of combat.
gear_sets:regalia: A gear_set worn immediately before casting Trader regalia; required for cycle_armors_regalia to function (regalia cycling is disabled if this gear_set is missing or empty).
summoned_weapons: List of summoned weapons/moonblades.
summoned_weapons:name: The skill to make a summoned weapon for.
summoned_weapons:turn: true to turn the summoned weapon
summoned_weapons:pull: true to pull the summoned weapon
summoned_weapons:push: true to pull the summoned weapon.
summoned_weapons_element: Element to summon your weapon as, defaults to stone.
summoned_weapons_ingot: noun of ingot to use for rare metal summoning.
stances: Used to override defense selection for a given weapon skill, normally used to prevent parrying with ranged weapons or offhand. See base.yaml for usage.
use_stealth_attacks: true to attempt to hide before attacking to use ambush/poach while stealth skill is not mindlocked. This will also attempt to hide before casting Vivisection.
ambush: true to use stealth attacks to train backstab. Should only use either ambush or backstab flags at one time
ambush_location: Set the ambush target for better backstab training for thieves.
backstab: Valid settings are 'Small Edged', 'Offhand Weapon' or both. This will attack with either backstab or backstab left for the chosen skill. Ensure you have a suitable weapon for backstabbing setup in your 'weapon_training:' section for the desired weapon skill(s). This defaults to ambush if the mob can't be backstabbed.
charged_maneuvers: Hash of charged maneuvers to use for each weapon skill.
fatigue_regen_threshold: Will use bob instead of an attack when fatigue drops below this.
aim_fillers: list of actions to take to fill time while aiming.
aim_fillers_stealth: Used in place of aim fillers if stealth experience is not capped.
dance_actions: List of actions to take while dancing with enemies.
dance_actions_stealth: Used in place of dance actions while stealth is not capped.
ignored_npcs: List of npc names to ignore, used to keep combat from trying to count/interact with pets, familiars, and roaming npcs. This is the single noun that identifies them, bear, warrior, Brokk. Currently caps sensitive.
stance_override: remove custom stance logic and simply set stance to provided string. E.g. 100 80 0
skinning: Hash of skinning related settings.
skinning:skin: true to skin kills.
skinning:arrange_all: true if you can use the arrange ALL command.
skinning:arrange_count: Number of times to arrange
skinning:arrange_types: Hash of creature noun to the type of arranging to do, eg rat:part. All arranging defaults to skin.
skinning:tie_bundle: true to tie your bundles up to reduce weight and item count.
skinning:dissect: true to dissect skinnable/dissectable corpses (First Aid training) as part of the loot cycle.
skinning:dissect_priority: Preference order used when choosing between competing dissect-cycle skills (Skinning/First Aid/Thanatology) on a corpse.
skinning:dissect_for_thanatology: true to include Thanatology in the dissect skill cycle so dissecting also trains Thanatology, not just First Aid.
skinning:dissect_retry_once: true to retry a dissect attempt once after a "gain no insights" result before giving up on that corpse.
skinning:arrange_for_dissect: If true (default), always arranges a corpse before dissecting/skinning it, regardless of the skin setting; set false to only arrange when actually skinning.
lootables: Base list of nouns to loot, the noun must be at the end of the object name and not part of another word. Changes to this are better made through loot_additions and loot_subtractions. Pearl would loot "a tiny yellow pearl" but not "a pearl studded coat" nor would rock cause you to loot "a large crock".
thanatology: Necromancer related settings, only partially implemented.
thanatology:heal: If true, use necromancer-specific healing rituals and spells.
thanatology:ritual_type: Name of the ritual to perform, i.e dissect
thanatology:butcher_count: Optional cap on the number of butcher attempts per corpse before moving on; leave unset to butcher until the corpse is exhausted.
thanatology:store: true to store harvested necromancer material (in thanatology:harvest_container) instead of dropping it, provided its quality is great/excellent/perfect/flawless.
thanatology:harvest_container: Container that harvested necromancer material is stored in when thanatology:store is true.
thanatology:harvest_count: Maximum amount of harvested material to store in harvest_container before further harvested material is dropped instead.
spare_gem_pouch_container: Container that holds your spare gem pouch should your equipped one become full.
gem_pouch_adjective: Adjective your gem pouch responds too.
buff_spells: Hash of buff spells to maintain on you while hunting, the key to the hash must match the spells name exactly e.g buff_spells:See the Wind. Will generally cast buffs in the order listed here.
buff_spells:Spell Name:abbrev: Abbreviation to use for prepping the spell.
buff_spells:Spell Name:recast: Remaining duration in minutes on a buff to trigger a recasting. -1 will wait until the spell falls off.
buff_spells:Spell Name:recast_every: Number of seconds to wait between recasts of this spell, for spells that recast or expire messages don't make sense.
buff_spells:Spell Name:expire: A string that when seen will trigger this spell to be recast
buff_spells:Spell Name:mana: Amount of mana to prep the spell with.
buff_spells:Spell Name:cambrinth: List of charges to put into cambrinth, will use worn cambrinth that can't be charged worn, however don't list more than two charges or strange things can happen.
buff_spells:Spell Name:prep_time: Time in seconds to wait before trying to cast the spell, optional, if not present waits until full prep.
buff_spells:Spell Name:before: A custom action to take immediately before casting the spell.
buff_spells:Spell Name:before:message: The message to send to the game.
buff_spells:Spell Name:before:matches: List of strings that are possible responses for the message.
buff_spells:Spell Name:after: A custom action to take immediately after casting the spell.
buff_spells:Spell Name:after:message: The message to send to the game.
buff_spells:Spell Name:after:matches: List of strings that are possible responses for the message.
buff_spells:Spell Name:moon: true if spell requires a moon to cast.
buff_nonspells: Nonspell buffs. Each has the format "action: timer", where 'action' will be output to the game every 'timer' number seconds.
buff_nonspells:barb_buffs: Specific subsection for barbarian buffs. These require no timer, instead they trigger off of expiration and activation messaging. List by buff name, i.e. "Python", capitalization required.
buff_nonspells:khri: Specfic sub section for Thief Khri. These require no timer. List skill by name. Capitalization not required.
offensive_spells: TM and Debil spells to use. Debil spells will be recast when a mob dies or the expiration message is seen.
offensive_spells:skill: Targeted Magic or Debilitation.
offensive_spells:abbrev: Abbreviation used for preparing the spell.
offensive_spells:recast_every: Number of seconds to wait between recasts of this spell, for spells that recast or expire messages don't make sense.
offensive_spells:expire: String that will trigger a recast of the spell when seen.
offensive_spells:mana: Amount of mana to prep the spell with
offensive_spells:cambrinth: List of charges to put into cambrinth, will use worn cambrinth that can't be charged worn, however don't list more than two charges or strange things can happen.
offensive_spells:prep_time: Time in seconds to wait before trying to cast the spell, optional, if not present waits until full prep.
offensive_spells:before: A custom action to take immediately before casting the spell.
offensive_spells:before:message: The message to send to the game.
offensive_spells:before:matches: List of strings that are possible responses for the message.
offensive_spells:after: A custom action to take immediately after casting the spell.
offensive_spells:after:message: The message to send to the game.
offensive_spells:after:matches: List of strings that are possible responses for the message.
offensive_spells:tattoo_tm: Will tell the system to target the invoked tattoo spell, if it's Targeted Magic.
cambrinth: Cambrinth item to charge for casting.
empath_healing: a VH entry here will control the mana used when vit drops. List of values is prep followed by cambrinth charges.
osrel_amount: Amount to infuse into OM each try.
osrel_no_harness: true if you don't need to harness before infusing.
kneel_khri: true if you have to kneel to activate khri.
manipulate_threshold: Number of enemies before attempting to manipulate.
training_abilities: Special one off trainers during combat. Hash is training type keyed to cooldown in seconds.
training_abilities:PercMana: Moon mage attunement training, retreats first.
training_abilities:Perc: Attunement training with perc.
training_abilities:Perc Health: Empathy training with perc heal.
training_abilities:Astro: Predict weather for astrology training.
training_abilities:App: Train appraisal by appraising enemies. Requires Approx 100 ranks for learning.
training_abilities:App Quick: See above.
training_abilities:App Careful: See above.
training_abilities:Locksmithing: Train locksmithing by picking pet boxes in combat.
training_abilities:Tactics: Train tactics with weave, bob, and circle.
training_abilities:Analyze: Train tactics by analyzing your opponent.
training_abilities:Hunt: Train perception and possibly scouting with the hunt command.
training_abilities:Pray: Pray to an immortal for theurgy.
training_abilities:Meraud: Maintains the Meraud Commune.
training_abilities:Scream: Train bardic lore with scream conc.
training_abilities:Stealth: Train stealth with hiding and stalking.
training_abilities:Ret Stealth: Retreat before stealth with hiding and stalking.
training_abilities:Teach: Teach hunting_buddies if there are any in the room on this timer.
training_abilities:Recall: Uses 'recall' on a mob in the room, which trains Scholarship
training_abilities:Khri Prowess: Trains Debilitation with Khri Prowess.
training_abilities:Berserk Avalanche: Trains Utility with Berserk Avalanche.
training_abilities:Berserk Landslide: Trains Warding with Berserk Landslide.
training_abilities:Ambush Stun: Uses settings stun_weapon, stun_weapon_skill and stun_skill
training_abilities:Almanac: Studies an almanac item (almanac_noun) to train a skill from almanac_skills/almanac_priority_skills, on a 10-minute cooldown.
training_abilities:Ambush Choke: Uses a dirt_stacker item to snipe dirt at a target while hidden.
training_abilities:App Bundle: Appraises your worn bundle.
training_abilities:App Pouch: Appraises your gem pouch (gem_pouch_adjective/gem_pouch_noun).
training_abilities:Barb Research Augmentation: Meditates to research Augmentation ("meditate research monkey").
training_abilities:Barb Research Utility: Meditates to research Utility ("meditate research prediction").
training_abilities:Barb Research Warding: Meditates to research Warding ("meditate research turtle").
training_abilities:Charged Maneuver: Flags the attack process to perform a charged combat maneuver as soon as it is off cooldown for the current weapon.
training_abilities:Collect: Forages for forage_item when the weapon is not loaded.
training_abilities:Favor Orb: Rubs your deity's (favor_god) orb; only added automatically when favor_goal is set and the orb is confirmed present.
training_abilities:Flee: Attempts to bluff-flee ("flee bluff") from combat.
training_abilities:PrayerMat: Unrolls a prayer mat, kneels and kisses it, and pours blessed wine on it, using theurgy_supply_container/prayer_mat_container.
training_abilities:Smite: Uses the Smite ability against an engaged, non-brawling/aimed enemy.
training_abilities:Tessera: Invests in a tessera (Trader-only) while under the tessera_mindstates threshold.
stun_weapon: The weapon you want to use to Ambush Stun. IE club or broadsword
stun_weapon_skill: The skill that stun_weapon trains or you would like to swap it to train IE Small Blunt or Large Edged
stun_skill: Set to either Backstab or Debilitation for the skill to watch while using Ambush Stun
fatigue_regen_action: Action to take when low on fatigue.
dual_load: true if you're capable of dual load
dedicated_camb_use: Set to 'cyclic' or 'spell' with respect to the magical feat
cycle_armors: List of armor types and corresponding items from gear to rotate for training purposes
whirlwind_trainables: Barb specific section for telling the combat-trainer which weapon skills you want to train with whirlwind. It requires one-handed templates, doesn't support two handed weapons, and will use the weapon listed under weapon_training.
barb_famine_healing: Barb specific section for automatic usage of Berserk Famine when low health. Has two settings listed below as well as knowledge of Berserk Famine as requirements.
barb_famine_healing:health_threshold:: Famine will be used when below this threshold.
barb_famine_healing:inner_fire_threshold: Will not use Berserk Famine unless above this threshold.
wield: Set to true or false; If true, then it wields and sheaths your weapon. This is very useful if you have weapons in different containers. With this set to true on each weapon (e.g. :wield: true in your gear settings), it will return them back from where they came with the wield and sheath commands.
hide_type: Value of "stalk" changes hide type to "slip stalk". This will perform the command "stalk" instead of "hide" which activates "slip stalk". "Slip stalk" is only available for a number of professions and must be learned. Default value: hide. Uses hide as normal.
force_unhide: Value of true will always unhide after hiding via Stealth timer under training_abilities:.
dont_stalk: Value of true prevents stalk usage after hiding when hiding via Stealth timer under training_abilities:. Default value is false.
OST_use_waggle: Name of a waggle_sets entry to use as your offensive spell list in place of offensive_spells; when set and the named waggle exists it's transformed into offensive-spell format automatically.
almanac_noun: The noun of the almanac item to get and study for the Almanac training ability.
almanac_priority_skills: Skills to prioritize for almanac study; the lowest-rate/rank eligible skill from this list is chosen before falling back to almanac_skills.
almanac_skills: The list of skills eligible to be trained via almanac study when the Almanac training ability fires.
always_use_maneuvers: If true, forces the Charged Maneuver training ability to always be eligible regardless of the trained skill's mindstate.
ambush_stun_weapons: List of weapon skills that qualify for the Ambush Stun training ability.
astrology_prediction_skills: Hash of astrology skills used when predicting; its 'survival' sub-key is used before executing a prediction.
attack_overrides: Hash mapping a weapon skill to an alternate attack verb, used in place of the normal attack command (e.g. for offhand aiming-trainable attacks) when use_overrides_for_aiming_trainables is enabled.
aura_frequency: How often (in seconds) a Trader checks their starlight aura via perc aura; set to 0 to disable starlight checks (also zeroed automatically once starlight is depleted).
autoloot_container: The container to pull gems from for autolooting into a gem pouch.
autoloot_fill_gem_pouch_delay: Minimum seconds between attempts to refill your gem pouch from autoloot_container.
autoloot_gems: true to automatically fill your gem pouch from autoloot_container on the configured delay.
avtalia_array: List of avtalia cambrinth items to periodically update/recharge; when non-empty for a Trader, a periodic avtalia update check is added to the spell process.
backstab_past_mindlock: true to use backstab against weapon skills listed in the backstab setting even after they're mindlocked (34), instead of only while still gaining experience.
balance_regen_threshold: The balance value below which the character pauses attacking to let balance regenerate.
barb_buffs_inner_fire_threshold: Minimum mana (inner fire) required before activating a barb_buffs ability or the Berserk training abilities.
battle_cries: List of battle cry definitions (each with a command, and optional target_enemy/min_threshold/max_threshold) to select from and use.
battle_cry_cooldown: Minimum seconds between battle cry uses.
battle_cry_cycle: Ordered list of battle cry names to cycle through; defaults to the order of names in battle_cries if not set.
bonebug: Hash of bone bug pet settings (e.g. 'make') controlling whether a necromancer creates a bone bug via Call from Within.
box_loot_limit: Maximum number of box-type items to hold at once; looting of additional boxes stops once the limit is reached.
buff_spell_mana_threshold: Minimum mana required before checking/casting buff spells or swapping into regalia.
cambrinth_cap: Maximum amount of cambrinth charge to hold/invoke from when using cambrinth.
cambrinth_invoke_exact_amount: true to invoke exactly the amount of cambrinth charge needed for the spell rather than a default/maximum amount.
cast_only_to_train: true to only cast offensive/buff spells while their skill is still gaining mindstate experience; casting is suppressed once mindlocked.
combat_analyze_retry_count: Maximum number of retries for the Analyze training ability when it fails to find a weakness before giving up for that pass.
combat_buff_waggle: Name of a waggle_sets entry to use as your buff spell list in place of buff_spells, when set and the named waggle exists.
combat_spell_timer: Seconds to wait between attempts to cast a non-cyclic training spell.
combat_spell_training: Hash of training spells (keyed by magic skill, e.g. Warding/Utility/Augmentation/Sorcery/Debilitation/Targeted Magic) cast purely to raise those skills' mindstate.
combat_spell_training_max_threshold: If the number of NPCs in the room exceeds this value, training-only spell casting is skipped for that tick.
combat_teaching_skill: The skill name offered when using the Teach training ability on nearby friends.
combat_trainer_buffs_force_cambrinth: true to force buff spells to use cambrinth invocation instead of harnessing mana, even when harnessing would otherwise be preferred.
combat_trainer_focus_threshold: Threshold used to determine when offhand/aiming-trainable focus-based weapon selection becomes active.
combat_trainer_gain_check: Number of consecutive attacks without a mindstate gain on the current weapon skill before it's blacklisted for the rest of the session.
combat_trainer_gear_set: Name of the gear_sets entry to wear at startup; defaults to "standard" if not set.
combat_trainer_herbs_allowhands: true to allow the Herbs training ability (heal-remedy quick) to use your hands even while NPCs are present, instead of only when the room is clear.
combat_trainer_ignore_weapon_mindstate: true to ignore weapon mindlock state when deciding whether to switch weapons, cycling weapons by combat_trainer_action_count instead.
combat_trainer_loop_tick: Seconds to pause between each combat-trainer main loop iteration; defaults to 0.1.
combat_trainer_magic_gain_check: Number of consecutive casts without a mindstate gain on a cast_only_to_train spell's skill before that skill is suppressed from offensive_spells.
combat_trainer_offhand_gain_check: Number of consecutive offhand attacks without a mindstate gain on the offhand skill before it's blacklisted from offhand training.
combat_trainer_offhand_trainables: true to enable the offhand/bow-preference weapon selection logic (bows first, then mainhand, then aiming_trainables in mainhand last) once focus_threshold is active.
construct: Setting mirror of the construct arg; when true, allows offense against constructs.
custom_loot_type: Extra text appended to the "loot" command (e.g. "gems") used when looting a corpse.
custom_spell_prep: Fallback custom spell preparation string used when a spell's own data doesn't define custom_prep.
cycle_armors_hysteresis: true to revert to default_armor_type once the room is clear of NPCs, rather than staying in the last combat armor set.
cycle_armors_regalia: List of armor/regalia types to cycle through for Trader regalia swapping; also used to validate that a 'regalia' gear_set exists.
cycle_armors_time: Minimum seconds between armor cycle swaps.
cyclic_no_release: List of cyclic spell names to exclude from being released when combat-trainer finishes casting/cleanup.
damaris_weapon_sets: Hash of Damaris weapon groups (each an array of weapon descriptions representing the same weapon in different turned states) used to detect the current turned state of your Damaris weapons.
default_armor_type: The armor type worn by default/when idle; used as the fallback when cycle_armors_hysteresis reverts armor after combat, and as the default regalia type.
default_stance: The stance percentages ("evasion parry shield") set once at combat-trainer startup via "stance set".
dirt_stacker: The dirt-stacker item used to push/collect dirt for the Ambush Choke training ability.
dissect_and_butcher: true to perform a dissect ritual after butchering a corpse (instead of only butchering), subject to butcher_count/exhaustion limits.
doublestrike_trainables: List of weapon skills eligible for the doublestrike charged maneuver; intersected with weapon_training so only weapons actually in your hunt are used.
dump_item_count: Room object count threshold at which "DUMP JUNK" is triggered.
dump_junk: true to periodically issue "DUMP JUNK" when room clutter exceeds dump_item_count.
dynamic_dance_skill: true to re-evaluate which skill to "dance" (defensive bob/weave/circle) with every few seconds instead of using a fixed dance_skill.
egg: Controls use of a room-effect egg item: an integer count, or truthy for a single egg.
empath_vitality_threshold: Health percentage below which an empath's healing spells (VH/FOC/HEAL) are triggered.
favor_goal: true to enable the Favor Orb training ability provided favor_god is set and the deity's orb is confirmed usable.
favor_god: The deity name used for the Pray and Favor Orb training abilities.
favor_orb_rub_frequency: Cooldown (seconds) between uses of the Favor Orb training ability.
firing_delay: Seconds to wait after loading a ranged weapon before firing (the aim-then-shoot delay).
flame_expertise_training_threshold: Expertise mindstate threshold below which barbarian Flame-based analyze combos are used for Expertise training.
flame_inner_fire_threshold: Minimum mana (inner fire) below which barbarian Flame-based analyze combos are disabled.
flint_lighter: The flint/lighter item used to light incense for the Meraud commune training ability.
forage_item: The item to forage/collect for, used by the Collect training ability.
full_pouch_container: The container a gem pouch is swapped into once it's full, so a spare pouch can take over.
gem_pouch_noun: The noun of your gem pouch (paired with gem_pouch_adjective) used for filling/tying/swapping gem pouches.
have_telescope: true to indicate you own a telescope, so it's retrieved and used for the Astro training ability's stargazing instead of the bare "observe" command.
health_threshold: Health percentage below which combat-trainer force-exits the room ("exit") as a safety measure.
import_constructs_list: true to load the bundled list of construct-type mob names so construct-detection logic can auto-recognize them.
import_undeads_list: true to load the bundled list of undead-type mob names so undead-detection logic can auto-recognize them.
khri_adaptation: Space-separated adaptation type(s) (e.g. "Delay") to activate via "khri Adaptation ..."; skipped while Khri Adaptation is already active.
last_rites: true to pray and recite Last Rites over a corpse in a blessed room before looting/rituals, on a 10-minute cooldown.
left_hand_free: true (with a Bow weapon skill) to exclude thrown-weapon skills from offhand aiming-trainable selection so the off hand stays free.
loot_bodies: true to enable looting/disposing of corpses and running the lootables/skinning/ritual logic on them at all.
loot_delay: Minimum seconds after a mob dies before looting begins.
loot_specials: List of special loot items (each with a name and target bag) that are stowed directly into a specific container instead of the default stow behavior.
magic_exp_training_max_threshold: Mindstate threshold above which a magic skill is considered mindlocked for training-spell/offensive-spell eligibility purposes; defaults to 32.
maneuver_rush_engage_only: true to restrict the Shield Usage "rush" charged maneuver to only be used for engaging (not general combat use).
maneuver_rush_shield: The shield item to equip in order to perform the Shield Usage "rush" charged maneuver for engaging.
maneuver_rush_skip_retreat: true to skip retreating after the Shield Usage rush maneuver stows the rush shield.
maneuver_rush_to_engage: true to use the Shield Usage charged maneuver to rush/engage targets when off cooldown.
manipulate_only_to_train: true to skip using the manipulate NPC-scattering ability once Empathy mindstate exceeds 30 (i.e. only use it while still training Empathy).
meditation_pause_timer: Timer/threshold controlling pause behavior when activating barb_buffs abilities.
necro_corpse_priority: When both a healing ritual and a pet-creation ritual (zombie/bone bug) are due on the same corpse, set to 'pet' or 'heal' to decide which is attempted first (defaults to healing first).
necro_force_rituals: true to force necromancer rituals to be performed on a corpse even when they would otherwise be skipped.
necro_redeemed: true to treat the corpse ritual as 'dissect' regardless of ritual_type/cycle logic (for a redeemed necromancer restricted from other rituals).
necro_siphon_vit_threshold: Health percentage at or below which a necromancer casts Siphon Vitality on an enemy (if configured in necromancer_healing) instead of waiting for consume-flesh healing.
necromancer_healing: Hash of necromancer healing spells (e.g. Consume Flesh, Devour, Siphon Vitality) plus a wound_level_threshold sub-key controlling when necro_heal triggers a consume ritual.
offensive_spell_cycle: Ordered list of offensive spell names to rotate through; when empty, the offensive spell with the lowest learning rate/rank is chosen instead.
offensive_spell_mana_threshold: Minimum mana required before an offensive spell is considered for casting.
offhand_thrown: true to add 'Offhand Weapon' to the set of thrown skills, allowing thrown offhand weapon training.
osrel_mana_threshold: Minimum mana required before infusing Osrel Meraud; if mana is below this, spell processing pauses until mana recovers.
paladin_use_badge: true to periodically remove and pray over a pilgrim badge on a ~31 minute cooldown, then re-stow/re-wear it.
paladin_use_mana_glyph: true to trace a mana glyph whenever the "glyph-mana-expired" flag fires (its power has run out).
permashocked: true to treat the character as always shock-vulnerable/offense-allowed regardless of empath status, bypassing the normal empath no-attack restriction.
pounce_on_cooldown: true for a Ranger to use Pounce whenever it comes off cooldown, in addition to using it to engage.
pounce_to_engage: true for a Ranger to use Pounce specifically to engage/close distance with a target.
prayer_mat: The prayer mat item used for the PrayerMat training ability.
prayer_mat_container: Container to retrieve/store the prayer mat from; falls back to theurgy_supply_container if not set.
prioritize_maneuver_doublestrike: true to prefer the doublestrike charged maneuver over other maneuver options, temporarily wielding an offhand weapon if needed to perform it.
prioritize_offensive_spells: true to check and cast offensive spells before training spells each tick, instead of the default training-spells-first order.
priority_defense: The defensive stance (Evasion / Parry Ability / Shield Usage) to always keep at 100%, when the current weapon has no weapon-specific stance preference.
priority_weapons: Preference list/criteria used to break ties when selecting the next weapon skill to train.
release_cyclic_on_low_mana: true to release active cyclic spells once mana drops below release_cyclic_threshold to free up mana for training spells.
release_cyclic_threshold: Mana threshold that triggers releasing cyclic spells when release_cyclic_on_low_mana is enabled.
roar_helm_noun: A helm item to "scream" through before performing a selected battle cry, if set.
runestone_storage: Container where runestones are stored/retrieved from for runestone-based buff and offensive spells.
safety_concentration_minimum: Concentration value below which the hunt is stopped as a safety measure.
safety_escape_health_threshold: Health threshold below which (for a Thief with Vanish known) the character activates Vanish and stops hunting when bleeding, stunned, or low on health.
safety_exit_on_bleeding: true to stop hunting when bleeding, or when stunned with health below safety_escape_health_threshold (or 80 if that's unset).
safety_untendable_threshold: Number of failed ;tendme attempts (still bleeding afterward) allowed before combat-trainer stops the hunt; defaults to 3.
segue_prep_on_stop: Prep argument passed alongside segue_spell_on_stop when segueing into a spell on stop, for a Bard.
segue_spell_on_stop: For a Bard, the spell to segue into when combat-trainer finishes its spell-casting cleanup step.
skip_last_kill: true to skip the final "kill" cleanup step (finishing off the last mob) when stopping, going straight to clearing magic instead.
sliver_recast_delay: Minimum seconds between recreating telekinetic slivers via a fresh Moonblade cast; defaults to 180, set to 0 to disable the throttle.
stealth_attack_aimed_action: The command used to fire an aimed ranged weapon while hidden/stealthed, in place of the normal "shoot".
stomp_to_engage: true for a Barbarian to use War Stomp specifically to engage/close distance with a target.
stop_hunting_if_bleeding: true to stop the hunt when bleeding rather than continuing to attempt ;tendme.
stored_cambrinth: Container where cambrinth items are stored/retrieved from when invoking or stowing cambrinth charge.
strict_weapon_stance: true to adhere strictly to a weapon's configured stance priority rather than dynamically reordering the first two stances for optimized learning.
summoned_weapons_adjective: Adjective used to identify/target a summoned weapon.
symbiosis_learning_threshold: Minimum mindstate-experience gain required from an auto-mana symbiosis/sorcery cast before its discern amount is increased further; a smaller gain increases the discern, a failed cast decreases it.
telescope_name: The name/description of your telescope item, used with have_telescope for the Astro training ability.
telescope_storage: Container the telescope is stored in/retrieved from for the Astro training ability.
tessera_mindstates: Trading mindstate threshold above which the Tessera training ability (investing in a tessera) stops being used.
theurgy_supply_container: Container holding theurgy supplies (holy water, incense, wine) used for the Meraud and PrayerMat training abilities; also the fallback for prayer_mat_container.
tie_gem_pouches: true to tie the gem pouch closed after filling/swapping it.
tk_ammo: Ammo item to drop at startup and use as telekinetic ammo for spells like Moonblade slivers when no moon is available.
training_spell_mana_threshold: Minimum mana required before a training-only spell (from combat_spell_training) is cast.
training_spells_combat_sorcery: If false, Sorcery training spells are only cast while NPCs are present; if true, that empty-room restriction is lifted.
use_analyze_combos: true (or via use_barb_combos) to enable barbarian analyze-combo attacks (accuracy/damage/balance/flame) instead of normal attacks.
use_barb_combos: Alternate/legacy name for use_analyze_combos; either enables barbarian analyze-combo attacks.
use_harness_when_arcana_locked: true to use a harness for attunement-locked casting instead of cambrinth invocation.
use_overrides_for_aiming_trainables: true to use the attack_overrides command for offhand aiming-trainable attacks instead of the default jab/lob/gouge commands.
use_stealth_ranged: true to hide before firing a ranged weapon shot (in addition to/instead of use_stealth_attacks for melee).
use_weak_attacks: true to use weaker/alternate attack verbs (e.g. against bound or lodging-prone weapons) instead of the character's normal full attack.
waggle_sets: Hash of named alternate spell-list "waggles" (buff/offensive/corpse-healing/zombie/bonebug/regalia) that can be swapped in via combat_buff_waggle, OST_use_waggle, or referenced directly by name.
war_stomp_on_cooldown: true for a Barbarian to use War Stomp whenever it comes off cooldown, in addition to using it to engage.
warhorn_cooldown: Seconds between warhorn exhale attempts (per warhorn item); defaults to 1200 (20 minutes).
water_holder: The holy water container/holder item used for the Meraud commune training ability.
worn_trashcan: A worn trashcan-type container used to dispose of unwanted/trash items during looting.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").
zombie: Hash of zombie pet settings ('make', 'summon', 'behavior', 'stance') controlling whether/how a necromancer creates and commands a zombie via Call from Beyond.

UserVars used in this script:

combat_trainer_debug: Turns on debugging messages.
moons: Read for the list of currently visible moons and each moon's timer, used to pick which moon to cast Moonblade or other moon spells with, and to summon moon weapons.
discerns: Read and incremented/decremented per spell abbreviation to auto-tune how much extra mana/discern an auto-mana symbiosis or sorcery cast uses, based on whether the last cast succeeded and gained experience.
sun: Read for day/night state to gate spells and buffs flagged with a day/night requirement, and to check starlight availability for Traders.
paladin_last_badge_use: Timestamp of the last time a paladin prayed over their pilgrim badge; read to enforce the badge reuse cooldown (~31 minutes) and written each time the badge is used.
yiamura: Read for the timestamp of the last yiamura raise; the yiamura script is only re-run once more than 2 hours have passed.
warhorn: Tracks the last time a warhorn/egg room effect was applied; read to enforce a 600-second room-effect cooldown and written each time the effect is (re)applied.
friends: Read for your configured friends list; combat-trainer offers to Teach any of them who are present in the room.
almanac_last_use: Timestamp of the last almanac study; read to enforce a 10-minute cooldown between Almanac training-ability uses and written each time the almanac is studied.

Other scripts used by this script: tendme, yiamura, locksmithing, heal-remedy


corn-maze

Runs the Hollow Eve corn maze.

Script usage: Run inside the large-form corn maze, anywhere in the starting 'labyrinth' or entrance area. This does NOT work with the single-task versions. The script will finish any pre-existing corn-maze task, then search the maze for incidental loot. Make sure to allow ten minutes between runs for the loot to respawn.

Script arguments:

noloot: Run as normal, but only pick up free corn maze passes from the incidentals.
restart: Run as normal, but skip incidental looting entirely. Useful if you already looted this run and needed to restart the script for some reason.
manual: Replaces loot-corn-maze.lic. Control your run manually. Pick up and complete tasks on your own. This will sit in the background, and search and loot any incidental objects you come across automatically.
short: Runs the fast 10-task challenge for the harried Halfling.
slow: Move through the maze one room at a time instead of type-ahead movement, useful for a slow or laggy connection.

Settings used in this script:

maze_junk: What to throw away during incidental looting. See defaults in base.yaml, and copy to your setup yaml to change them.
cornmaze_containers: A list of bags to try and put incidental loot into, top ones first. If all of them are full it'll try and STOW the item, and if that fails it'll drop it. By default, no bags listed.
cornmaze_containers:
  - backpack
  - rucksack
  - satchel
worn_trashcan: A worn trashcan-type container used to dispose of junk loot (per maze_junk) and foraged corn during the run.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").

UserVars used in this script:

Other scripts used by this script:


craft

Crafts one item.

Script usage:

Script arguments:

outfitting: Knit or sew an Outfitting item.
forging: Forge a Blacksmithing item.
engineering: Shape one item.
alchemy: Brew an Alchemy remedy/elixir/poultice, foraging or buying ingredients as needed.
enchanting: Buy sigils/totems/runestones and enchant an item for Enchanting training.
debug: Enables verbose debug echo output throughout the script.

Settings used in this script:

yarn_quantity: How much yarn to keep on hand for knitting, defaults to 100.
craft_max_mindstate: What mindstate to make running the script a noop. Defaults to 31
force_crafting_town: Overrides your home town for crafting-related town/stock-room lookups, taking priority over hometown when set.
hometown: Your home town, used for crafting town/stock-room lookups when force_crafting_town is not set.
worn_trashcan: A worn trashcan-type container used to dispose of crafting byproducts (totems, runestones, lumber, finished remedies, etc.) after each craft.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").
training_rooms: List of rooms to randomly pick from as your training location for knitting/sewing/shaping/brewing; falls back to safe_room if not set.
safe_room: Fallback training room used when training_rooms isn't set.
storage_containers: List of containers to open at script startup.
crafting_container: The container used to hold and retrieve crafting materials, ingredients, and finished products throughout the script.
crafting_items_in_container: List of items expected to already be present in crafting_container; checked when refilling a fount for Enchanting.
enchanting_belt: The enchanting belt item used to hold sigils/totems/runestones during Enchanting training.
craft_overrides: Hash keyed by skill name (Outfitting/Engineering/Forging) letting you override the rank-based item selection; each entry needs an item (and chapter), plus for Outfitting a type of 'sew' or 'knit' and volumes when sewing.
enchanting_room: The room to walk to for performing Enchanting training rituals.
classes_to_teach: List of skill names to rotate through and offer to teach to other characters present in the room while training.
listen: If true, listens to a nearby teacher for skill experience while training.
listen_observe: Passed along when checking for a teacher to listen to, controlling whether passive observation counts.
crossing_training: List of skills currently being trained; a skill (e.g. Alchemy) is automatically removed from this list if funds or ingredients run out during that craft.

UserVars used in this script:

Other scripts used by this script: enchant, sew, shape, smith, remedy, alchemy


crossing-repair

Repair items in your gear list.

Script usage: Originally intended to be used in The Crossing. The script now works outside The Crossing with hometown set to: Riverhaven, Therenborough, Shard, Aesry, Mer'Kresh, Hibarnhvidar, Boar Clan, Fang Cove, Muspar'i, Hara'jaal, Leth Deriel, Rossman's Landing, Langenfirth, or Ratha

Script arguments:

town: Repair in a specific town instead of your hometown; must be a recognized town name (see Category:Cities).
force: Force a repair run, ignoring repair_timer and the repair_heuristic_gear check.
debug: Enables verbose debug messaging.

Settings used in this script:

repair_withdrawal_amount: Amount in coppers to withdraw to cover repairs.
gear: List of gear that will be used in this script. Armor and Weapons.
gear:name: Noun of the item.
gear:hinders_lockpicking: true if should be removed for lockpicking.
gear:skip_repair: true to exempt this item from crossing-repair, so it's never handed off for repair.
gear:is_worn: true if the item is worn such as armor, shields, wearable weapons.
gear:swappable: true if this is a swappable weapon.
gear:tie_to: This is the name of what this weapon is tied to, e.g toolstrap.
gear:adjective: Used to differentiate items with the same name, if TAP ADJECTIVE NAME doesn't work then these settings are wrong.
gear:bound: true if the item bonded for hurl/invoke.
gear:leather: true to classify this item as leather goods for repair grouping (determines whether it's turned in to the leather or metal repairer when a town only has one type).
force_repair_town: Overrides your hometown as the town to travel to for repairs; checked before fang_cove_override_town if no town argument is given.
fang_cove_override_town: Fallback override town for repairs, used if force_repair_town isn't set and no town argument was given.
repair_heuristic_gear: List of item names to appraise; if any come back damaged past repair_heuristic_threshold, a full repair run is triggered even if repair_timer hasn't elapsed.
repair_heuristic_threshold: Condition index (1=worst "battered and practically destroyed" through 10=best "in pristine condition") at or below which repair_heuristic_gear triggers a repair run.
repair_timer: Minimum seconds between repair runs; repair is skipped (unless forced or the heuristic triggers) until this many seconds have passed since the last repair.
sell_loot_skip_bank: If true, skips depositing leftover coins after repairs, provided you already have enough copper on hand to cover repair_withdrawal_amount.
sell_loot_money_on_hand: Amount of money to keep on hand rather than deposit, formatted as "AMOUNT DENOMINATION" (e.g. "50 silver").
hometown: Your home town; used for town data lookups (repairers, currency, bank) unless overridden by a town argument, force_repair_town, or fang_cove_override_town.
instrument: If true, skips auto-starting the performance script during repair (assumes you're already running it yourself).
sort_auto_head: If true, issues "sort auto head" after repairs finish to fix items that landed in your head inventory slot.

UserVars used in this script:

crossing_repair_debug: Turns on debugging messages.
repair_timer_snap: Timestamp of the last completed repair run; read to evaluate repair_timer and updated each time a repair finishes.

Other scripts used by this script: performance


crossing-training

Trains non-combat skills. Despite the name, crossing-trainer this works in other towns using the hometown setting.

Script usage: Cycles through skills training the lowest one in field experience at the time.

Skills that can be trained: Appraisal, Athletics, Astrology, Attunement, Augmentation, Warding, Utility, Debilitation, Empathy, Engineering, First Aid, Forging, Locksmithing, Mechanical Lore, Outdoorsmanship, Outfitting, Perception, Performance, Scholarship, Scouting, Sorcery, Stealth, Summoning, Theurgy, Thievery, Trading.

Additionally, the following skills can be trained only via research: Arcana, Life Magic, Holy Magic, Lunar Magic, Elemental Magic, Arcane Magic.

Script arguments:

(flex): Any extra argument loads an additional YAML file merged over your base settings, e.g. ;crossing-training back loads YourName-back.yaml. There are no other named arguments.

Settings used in this script:

train_with_burgle: Set true to turn on burgle for locksmithing, thievery, stealth, and/or athletics. Needs burgle_settings:.
classes_to_teach: List of subjects to teach people in your safe room
use_research: Whether or not to use research when training magic skills. Requires train_with_spells to be true.
outdoor_room: Room to walk to when a moon spell needs perceiving and you're indoors.
storage_containers: A list of containers to open before starting training.
crossing_training_requires_movement: Skills which require movement as part of their training. This is used to avoid spamming the safe room with repeated entry/exit messages.
crossing_training: List of skills to train. Supported Skills - Appraisal (requires zills), Athletics, Arcana/Primary Magic(requires research enabled), Astrology, Attunement, Augmentation, Warding, Utilty, Debilitation(barb only?), Empathy, Engineering(workorders), First Aid (needs compendium), Forging (workorders or raw smithing), Locksmithing, Mechanical Lore, Outdoorsmanship, Outfitting(workorders or knitting), Perception, Performance(zills), Scholarship(blacksmithing book), Scouting(enough ranks for trails), Sorcery, Stealth (low ranks only), Summoning, Theurgy(see theurgy script), Thievery, Trading(workorders).
safe_room: Room Id where you do any stationary training and listen for classes.
exit_on_skills_capped: Whether or not to exit the game when all skills are locked
crossing_training_sorcery: If set (truthy), lets Sorcery stay eligible for training even when you don't hold a runestone and your Sorcery rank exceeds 50 (the normal fallback condition).
listen: Whether or not you should attempt to listen to classes while training
listen_observe: Passed along when checking for a teacher to listen to, controlling whether passive observation counts.
train_with_spells: If true, train Augmentation/Warding/Utility/Debilitation by casting spells from training_spells (or via research, if enabled); if false, uses the training_nonspells actions instead.
cyclic_training_spells: Cyclic Spells to use when training.
cyclic_cycle_skills: Skills to train with cyclic spells during crossing-training.
training_spells: Spells to use when training magic skills. TODO: Make this its own page.
research_skills: List of magic skills to train via spell research; also used by not_research_blocked? to gate normal training for those skills once research is active.
exp_timers: Cooldown timers between attempts to train a given skill
training_nonspells: Hash of non-spell training actions (e.g. Khri, berserk abilities) keyed by skill name, used for Augmentation/Warding/Utility/Debilitation when train_with_spells is false.
kneel_khri: true if you have to kneel to activate khri; passed through when a training_nonspells ability is a Khri.
khri_preps: If you use Khri for training, make sure their prep messages are recorded here
prep_scaling_factor: This scaling factor is multiplied by your discerned max mana for a spell. The mana to be removed is rounded up, so anything < 1.0 will always result in at least one mana removed.
cambrinth_cap: The maximum amount of mana your cambrinth can hold
osrel_amount: Amount to infuse into Osrel Meraud each check, while the spell is active.
osrel_no_harness: true if you don't need to harness before infusing Osrel Meraud.
stored_cambrinth: Whether or not your cambrinth item is stored (false indicates worn)
cambrinth: The noun for the cambrinth you use, used as the default single-item entry in cambrinth_items if that isn't set.
cambrinth_items: List of cambrinth items (each a hash of name/cap/stored) to charge and invoke from for spellcasting; defaults to a single-item list built from cambrinth/cambrinth_cap/stored_cambrinth if not set.
cambrinth_invoke_exact_amount: true to invoke exactly the amount of cambrinth charge needed for the spell rather than a default/maximum amount.
prep_messages: If you cast spells for training, make sure their prep messages are recorded here
custom_spell_prep: Fallback custom spell preparation string used when a spell's own data doesn't define custom_prep.
symbiosis_learning_threshold: Minimum mindstate-experience gain required from a symbiosis cast before its discern amount is increased further; a smaller gain increases the discern, a failed cast decreases it.
compost_room: Room to walk to before casting a 'comp'-abbreviated (composting) spell, and where the composting warning message is announced.
train_workorders: Disciplines to train via workorders when training that skill
work_order_disciplines: Disciplines to train via workorders when training Trading
sell_pouches_for_trading: If true, runs sell-pouches before workorder training when Trading experience is still low (under 5).
tithe: Whether or not to tithe (two boxes are supported), with a cooldown of 4 hours
tithe_almsbox: Overrides the almsbox room used for tithing; falls back to the town data's almsbox if not set.
dedicated_camb_use: Set to 'cyclic' or 'spell' with respect to the magical feat
waggle_sets: Checked for a 'town-training' entry; if present, the buff script is run with the town-training waggle before each training loop.
dump_junk: If true, periodically issues "dump junk" when room clutter exceeds dump_item_count.
dump_item_count: Room object count threshold at which dump_junk triggers.
crossing_training_stationary_skills_only: If true, skills listed in crossing_training_requires_movement are excluded from selection entirely, restricting training to stationary skills only.
crossing_training_max_threshold: Mindstate threshold at/above which a skill is treated as capped and skipped in favor of idling/researching/TDP-checking.
lockpick_room_id: Room to walk to for Locksmithing training instead of the general training_room, if set.
mine_for_outdoorsmanship: If true, trains Outdoorsmanship via the mining-buddy script instead of the outdoorsmanship script.
fa_skinning_trainer: If true, runs the faskinner script before first-aid when training First Aid.
crafting_training_spells: If true (while researching), skips Outdoorsmanship/Perception training entirely in favor of continuing research.
hide_to_steal: If true, stops any active song before running the steal script for Thievery training.
instrument: If set, indicates your instrument is already worn (skips checking whether it needs to be retrieved) when playing songs.
pray_to_chadatru: (Paladin) If true, periodically walks to the chadatru altar and prays, on a 1 hour cooldown.
use_tessera_during_crossing_training: (Trader) If true, periodically invests in your tessera during training, on an 11 minute cooldown.
hometown: Your home town; used for town data lookups (almsbox, chadatru altar) and passed to child scripts.
worn_trashcan: A worn trashcan-type container used to dispose of unlisted trash items (per get_data('items').trash_nouns) picked up while training.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").
training_rooms: List of rooms to randomly pick from as your training location; falls back to safe_room if not set.

UserVars used in this script:

crossing_trainer_debug: Turns on debugging messages.
crossing_timers: Hash tracking the last training-attempt timestamp per skill (UserVars.crossing_timers[skill]); read by ready_to_use? against exp_timers and written each time a skill is attempted.
discerns: Read and incremented/decremented per spell abbreviation (UserVars.discerns[abbrev]['more']) to auto-tune how much extra mana/discern a symbiosis cast uses, based on whether the last cast succeeded and gained experience.
chadatru_prayer_last: (Paladin) Timestamp of the last Chadatru prayer; read/written to enforce the 1 hour pray_to_chadatru cooldown.
tessera_invoke_last: (Trader) Timestamp of the last tessera investment; read/written to enforce the 11 minute use_tessera_during_crossing_training cooldown.
tithe_timer: Timestamp of the last tithe payment; read/written to enforce the tithe cooldown (4 hours for paladins, 10 minutes for clerics).

Other scripts used by this script: buff, safe-room, pay-debt, sorcery, locksmithing, sell-loot, theurgy, mining-buddy, outdoorsmanship, faskinner, first-aid, study-art, athletics, scouting, attunement, burgle, steal, appraisal, sanowret-crystal, astrology, workorders, craft, sell-pouches


crowns

Plays the Hollow Eve's game dice/crowns.

Script usage:

Script arguments:

bet: Optional override for the bet amount if dice_bet_amount isn't set in your YAML.

Settings used in this script:

dice_bet_amount: Put this in your yaml and set to some whole number, like dice_bet_amount: 10.
dice_money_on_hand: How much money to withdraw from the bank.
dice_withdraw: Withdraw money from the bank setting.
hollow_eve_loot_container: Storage container name.
hollow_eve_junk: List of item nouns won from the dice game that should be thrown away instead of stowed.
worn_trashcan: A worn trashcan-type container used to dispose of hollow_eve_junk items.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").

UserVars used in this script:

Other scripts used by this script:


dusk-labyrinth

Searches for pets, bloodscrip, and loot in Duskruin Labyrinth.

Script usage: Configure your settings, enter the labyrinth, then start the script. The script will wait for messaging about a critter scurrying about and either try to catch it or move to another room. If no pet has been found by the 5 minute warning then it begins to search each room to collect bloodscrip and incidentals.

Script arguments:

loot: (optional) Run the maze for loot only. Do not search for a pet.
debug: (optional) Turns on debugging messages.

Settings used in this script:

duskruin:labyrinth:pet_noun: (required) Kind of pet searching for, such as monkey or rat.
duskruin:labyrinth:loot_container: (optional) Which container to put the bloodscrip and items you find when searching. If not specified then relies on STOW left/right.
duskruin:labyrinth:redeem_scrip: (optional) Set to true to auto redeem any found bloodscrip. Default is false.

UserVars used in this script:

dusk_labyrinth_debug: (optional) Turns on debugging messages.

Other scripts used by this script:


echo

Logs all incoming game text to a local file, echo_log_room.txt.

Script usage: Run in the background; every downstream server string is appended to echo_log_room.txt in your Lich directory until the script is stopped.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


edityaml

Interactive in-game menu for editing your character's YAML settings file.

Script usage: Run the script and use ;send # to select a menu option, or ;send # value to set a text field. Use ;send save to save your changes and exit, or ;send quit to exit without saving. Currently supports editing crossing-training skill selection, magic training spell settings, and your gear list.

Script arguments:

Settings used in this script:

crossing_training: List of skills to train; toggled on/off from the skill selection menu.
train_with_spells: Whether to use spells to train magic skills; toggled from the magic training menu.
training_spells: Hash of training spells (Warding/Augmentation/Utility) with abbrev/symbiosis/cast sub-fields, editable from the spell settings menu.
gear: List of gear items (each with name, adjective, is_leather, is_worn, hinders_lockpicking, tie_to, swappable) editable from the gear menu.

UserVars used in this script:

Other scripts used by this script:


empathylink

Will link to your hunting_buddies while in combat running combat-trainer, healing wounds via touch/transfer or an established Hodierna link.

Script usage: Start the script in your autostarts or manually start with ;empathylink when you want to use. Script is meant to run in the background.

In your yaml put the following to never heal these people (replace the example names with yours):

noheal_empathylink:
 - Bob
 - Joe
 - Jill

Script arguments:

Settings used in this script:

has_hodierna: Set to true in your yaml to use Hodierna link.
noheal_empathylink: List of names you never want to heal even if in hunting_buddies list. This setting is in this script.
hunting_buddies: List of character names eligible to be healed/linked while combat-trainer is running.

UserVars used in this script:

empathylink: Hash tracking, per target name, the timestamp until which further heal/link attempts on them are held off; read by should_heal? and written after each touch attempt.

Other scripts used by this script:


equipmanager

Script usage:

Script arguments:

Settings used in this script:

UserVars used in this script:

equipmanager_debug: Turns on debugging messages.

Other scripts used by this script:


expreset

Resets your EXP window in Wrayth. This is useful for removing erroneous game output that gets 'stuck' in your exp window (usually during connection).

Script usage: Run once with ;expreset. Rebuilds the Field Experience stream window from scratch, clearing any stuck/garbled output.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


faux-atmo

Bring your verby items to life! Turn toys and items with fun verbs into atmospherics by periodically performing a random verb on a random item based on your settings.

Script usage: Configure which items and verbs you want to periodically do then start the script. It runs in the background.

Script arguments:

debug: Enable debug mode.

Settings used in this script:

faux_atmo_interval: Number of minutes to wait between performing a verb on an item.
faux_atmo_random: Set to true to randomly select an item and verb to perform. Set to false to round-robin select items and verbs to perform.
faux_atmo_items: List of items (each with a name and a list of verbs) that don't have an inherent atmo effect but whose verbs, if done periodically, would.
faux_atmo_no_use_scripts: Don't perform verbs on items if any of these scripts are running.
faux_atmo_no_use_rooms: Don't perform verbs on items if in any of these rooms (room title text or room id).


Example Settings:

# Number of minutes to wait between performing a verb on an item.
faux_atmo_interval: 15

# Set to true to randomly select an item and verb to perform.
# Set to false to round-robin select items and verbs to perform.
faux_atmo_random: true

# Items that don't have an inherent atmo effect
# but whose verbs if done periodically would.
faux_atmo_items:
  - name: blue basilisk
    verbs:
    - pet
    - pinch
    - poke
  - name: hooded cloak
    verbs:
    - rub
    - pat
    - wave

# Don't perform verbs on items if these scripts are running.
faux_atmo_no_use_scripts:
- combat-trainer
- go2
- get2
- bescort
- steal
- burgle

# Don't perform verbs on items if in these rooms.
faux_atmo_no_use_rooms:
- Carousel Chamber     # Room with vault
- Carousel Booth       # Room just before vault
- 1900                 # You can specify room ids, too

UserVars used in this script:

faux_atmo_debug: Enable debug mode.

Other scripts used by this script:


favor

Gets one favor by rubbing an orb repeatedly.

Script usage: It is intended to be used in The Crossing.

If an argument is passed to the script, that Immortal's name will be used and altar favors are performed instead of the puzzle. The default (no argument) runs the favor puzzle instead.

Script arguments:

immortal: Name of the Immortal whose orb to get from an altar; switches the script to altar-favor mode instead of the puzzle. Any other extra argument loads an additional YAML file merged over your base settings.

Settings used in this script:

favor_town: Overrides your hometown for favor purposes; checked before fang_cove_override_town and hometown.
fang_cove_override_town: Fallback override town for favors, used if favor_town isn't set.
hometown: Your home town; used for favor town/altar lookups if neither favor_town nor fang_cove_override_town is set.
water_holder: The water container used to hold holy water for cleaning the altar; required when using altar favors (the immortal argument).
favor_god: The deity name used when performing the favor puzzle (must be a Neutral aspect).

UserVars used in this script:

Other scripts used by this script: find


fill-dirt

Fills a dirt stacker with dirt.

Script usage: Run the script in any room where dirt is forageable.

Script arguments:

Settings used in this script:

dirt_stacker: Name of dirt stacker to fill. Must be worn.

UserVars used in this script:

Other scripts used by this script:


find

Finds an NPC in The Crossing.

Script usage:

Script arguments:

town: Town/area to search: crossing, dirge, shard, boar, or riverhaven. Defaults based on the NPC name if omitted.
npc: A unique name (or noun) of the NPC to find.
follow: If present, the script will follow the NPC around.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


find-darkbox

Finds and plays the Hollow Eve's game Darkbox.

Script usage:

Script arguments:

override: Optional arg. Passes override to heal-remedy to use remedies instead of herbs if you already have herbs setup in your yaml.

Settings used in this script:

he_use_herbs_remedies: Put this as true in your yaml if you want to use heal-remedy.
hollow_eve_loot_container: Storage container name.
hollow_eve_junk: List of item nouns won from the Darkbox that should be thrown away instead of stowed.
darkbox_stop_on_wounded: If true, stops the script once you become wounded instead of trying to heal via heal-remedy.
worn_trashcan: A worn trashcan-type container used to dispose of hollow_eve_junk items.
worn_trashcan_verb: The verb used to place items into worn_trashcan (e.g. "put").

UserVars used in this script:

last_darkbox: Room id of the last known Darkbox location; read to resume searching from there and cleared when the Darkbox vanishes.

Other scripts used by this script: heal-remedy


first-aid

Trains the First Aid skill by reading compendiums or textbooks More in-depth look at first-aid.lic: https://github.com/elanthia-online/dr-scripts/wiki/First-Aid-Strategy

Script usage:

Script arguments:

skill_focus: Skill to focus on OTHER than first aid, which is the default. Specify "scholarship" or "both" to train otherwise.

Settings used in this script:

textbook: False if using a compendium, true otherwise.
textbook_type: If not using a compendium, the name of the thing to study.
compendium_type: Will default to compendium but also supports burgled manuals and guides.
performance_pause: Seconds to pause before starting the performance script, to give a previous script's before_dying time to stop it first.
number_of_firstaid_charts: Maximum number of eligible anatomy charts to study per run.
bleed_bot: If set to a character name, skips normal training and instead runs tendother on that character for 10 seconds (bleed-bot mode).
bleed_bot_room: Room to walk to before running tendother in bleed_bot mode.
instrument: If set, skips auto-starting the performance script (assumes you're already playing).
firstaid_scholarship_modifier: Amount to subtract from your Scholarship rank when calculating which anatomy charts are within reach; overrides the default rank-based falloff.

UserVars used in this script:

Other scripts used by this script: tendother, performance


faskinner

Trains the First Aid skill with training items such as a small blue-belly crocodile with prominently stitched seams or a small fuzzy caracal with tufted ears and double-stitched seams.

Script usage:

Script arguments:

Settings used in this script:

fa_skinning_trainer: Trainer noun should match exactly, such as crocodile or caracal.
fa_skinning_trainer_container: Container where you store your trainer, if it's not worn.
fa_skinning_knife: If you don't wear a skinning knife, this is the bladed weapon you want to use to skin with, such as a dagger.
fa_skinning_knife_container: If you specify fa_skinning_knife, this is the container where that bladed weapon is stored.
fa_skinning_priority: Options: First Aid, Skinning, Both or leave blank for whichever happens first.
fa_skinning_mindstate_target: Mindstate target for First Aid/Skinning (per fa_skinning_priority) at which the script stops training.
crafting_training_spells: Hash of training spells cast between skinning/repair attempts via DRCA.crafting_magic_routine; also checked to decide whether to release spell/mana on exit.


Example Settings:

# Trainer noun should match exactly, such as crocodile or caracal
fa_skinning_trainer: 

# Container where you store your trainer, if it's not worn.
fa_skinning_trainer_container: 

# If you don't wear a skinning knife, this is the
# bladed weapon you want to use to skin with, such as a dagger.
fa_skinning_knife: 

# If you specify 'fa_skinning_knife:' then this is
# the container where that bladed weapon is stored.
fa_skinning_knife_container: 

# Options:  First Aid, Skinning, Both or leave blank for whichever happens first
fa_skinning_priority: 

# Mindstate target for First Aid/Skinning at which the script stops.
fa_skinning_mindstate_target: 

UserVars used in this script:

Other scripts used by this script:


feed-cloak

Feeds living vine cloaks that you are wearing so that they stay refreshed and healthy.

Script usage: Run on demand or part of a training routine to feed your cloak regularly. Does not run in the background.

Script arguments:

Settings used in this script:

feed_cloak_room: If your cloak can't feed in your current room, feed-cloak will move to this room id.
safe_room: Fallback room to move to and try feeding if feed_cloak_room isn't set, or if the cloak can't feed there either.


Example Settings:

# If your cloak can't feed in your current room
# then feed-cloak will move to this specified room id.
# If not specified, or if the cloak can't feed here either,
# then the script will move to your `safe_room`.
feed_cloak_room: 992 # Crossing, [Northeast Wilds, Outside Northeast Gate]

UserVars used in this script:

Other scripts used by this script:


forge

Forges an item. Adapted from a script by Mallitek.

Script usage: EXAMPLES:

;forge weaponsmithing 2 sword steel sword

;forge blacksmithing 6 "shallow metal cup" bronze cup

;forge blacksmithing 6 scratcher bronze scratcher

;forge instructions steel sword

;forge temper sword

;forge hone sword

;forge resume weaponsmithing hammer

;forge log weaponsmithing 4 "steel throwing hammer" steel hammer

Script arguments:

finish: What to do with the finished item: hold, log, stow, or trash. Defaults to hold.
book_type: Type of book: blacksmithing, armorsmithing, or weaponsmithing.
chapter: Chapter of the book containing the item.
recipe_name: Name of the recipe (wrap in double quotes if multiple words); also accepts an enhancement shortcut (temper, balance, hone, lighten, reinforce) in place of book_type/chapter.
metal: Type of metal ingot to use.
noun: Name/noun of the item being crafted or enhanced.
instructions: Use loose instructions instead of a book recipe (paired with metal and noun).
resume: Resume interrupted work on an item already on the anvil, on the forge, or in hand (paired with book_type and noun).
skip: Optional setting to skip restocking consumables if low (oil).
debug: Displays debug information.

Settings used in this script:

hometown: Your home town; used for crafting data lookups (forging society, private forge, grindstone).
mark_crafted_goods: If true, stamps the finished item with your maker's mark before finishing.
cube_armor_piece: If set, touches this cube armor piece for a crafting bonus before starting work.
crafting_container: The container used to hold and retrieve crafting materials, tools, and finished products.
crafting_items_in_container: List of items expected to already be present in crafting_container, used when retrieving tools/materials.
forging_belt: The belt used to hold tools/items during forging when not using crafting_container.
forging_tools: List of your forging tools; must include a hammer or mallet, which is used as the default pounding tool.
debug_mode: Fallback debug flag used if the debug argument isn't passed.
forge_use_private_forge: If true, rents/travels to a private forge before crafting instead of using the public forge.
forge_private_forge_cost: Copper cost to rent the private forge; defaults to 5000 if not set.
forge_show_progress: If true, periodically analyzes the item and reports completion percentage/quality at natural pause points.
adjustable_tongs: If true, treats your tongs as adjustable (can become a shovel) instead of carrying separate tools.
master_crafting_book: If set, uses a master crafting book (via find_recipe2) instead of an individual book_type book to find the recipe.

UserVars used in this script:

Other scripts used by this script: buff


gbox

Hand all boxes from a container (the first argument) to a character (the second argument).

Script usage:

Script arguments:

container: Name of the container to get boxes from.
character: Name of the character to give boxes to.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


glyph-of-mana

A script that will keep glyph of mana up always.

Script usage: Meant to be used as a during: in combat but can be used anywhere.

# Example usage:
hunting_info:
- :zone: cinder_beasts
  args:
  - d1
  stop_on:
  - Small Edged
  :duration: 55
  before:
  - go2 12345
  - mech-lore
  - athletics
  during:
  - glyph-of-mana

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


gmoney

Hand money to the given character. The money is given 10 plat at a time, depositing first to minimize coinage (i.e. hand off plat instead of copper where possible). Useful for F2P players who cannot deposit more than 10 plat at once.

Script usage: Start the script while you and the other player are standing at a bank teller.

Script arguments:

character: The character

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


heal-remedy

Uses crafted remedies for healing

Script usage: This script will cycle through the remedies, from base-remedies.yaml, from the most potent to least potent. The script will pause a little bit, letting the remedies work to make scars, then apply scar remedies. Will need one hand free to use.

Script arguments:

debug: Enables debug messaging.
nohands: Skip herbs which must be held to use.
noscars: Skip scar healing herbs.
quick: Skip the 3 minute delay between wound and scar herbs.
level: Healing level desired; only wounds at or above this severity are treated.
override: Override setting to force using remedies instead of herbs if herbs are already defined in your yaml.

Settings used in this script:

herbs: If set (truthy), uses herbs (base-herbs.yaml) instead of crafted remedies for healing, unless the override argument is used.
remedy_container: Container to retrieve/store remedies or herbs from while healing.

UserVars used in this script:

Other scripts used by this script:


healme

A self healing script for empaths.

Script usage: Will heal your own wounds, leaving external bleeders as desired. Uses the 'healing' waggle set to configure how to cast your spells. Backwards compatible with 'empath_healing' setting.
YAML Configuration

healme:
  debug: false
  severity_threshold: 5
  max_wounds_to_tend_while_prep_spells: 2
  max_wounds_to_heal_between_perceives: 3
health_threshold: 50
waggle_force_cambrinth: false
waggle_sets:
  healing:
    - spell: 1201
      waggle: my third waggle
    - spell: 1220
      waggle: my fourth waggle

Script Usage

;healme
;healme "chest, left arm"
;healme 2
;healme debug

Script arguments:

debug: Enables debug messaging.
keep: Comma-separated list of body parts to exclude from healing.
severity: Overrides the wound severity threshold (0-13) used to determine which wounds get healed.

Settings used in this script:

healme:debug: Enables debug messaging.
healme:severity_threshold: Wound severity threshold used to determine which wounds get healed.
healme:max_wounds_to_tend_while_prep_spells: Maximum number of wounds to tend to while spells are being prepped.
healme:max_wounds_to_heal_between_perceives: Maximum number of wounds to heal between perceive checks. Defaults to 3.
waggle_sets: Waggle set definitions; the 'healing' waggle set configures which spells to cast and how.
empath_healing: Legacy fallback setting for healing spell configuration, used if 'waggle_sets' healing waggle is not set.
health_threshold: Health percentage threshold below which vitality healing is triggered.
waggle_force_cambrinth: Forces the use of cambrinth when casting healing spells.

UserVars used in this script:

healme_debug: Fallback debug flag used if the 'healme:debug' setting is not set.

Other scripts used by this script:


herb-stock

Restocks herbs for healing with herbs in combat

Script usage: This script will restock either default herbs or herbs defined in the user's yaml

Script arguments:

town: Override your character's hometown with a different town to use for stocking herbs.

Settings used in this script:

hometown: Your character's hometown, used to determine default herb stock and shopping location.
herbs: Set this to true to restock default herbs based on your character's hometown. Alternatively, define a list of herbs to add to or override the default list.
herbs_override_herbstock: Set this to true to ONLY use the herbs defined in the herbs setting.
storage_containers: Containers to open before restocking herbs.
remedy_container: Container used to hold and stow herbs while restocking.
sell_loot_money_on_hand: Amount of coin to keep on hand; used to determine how much coin to withdraw or deposit while restocking herbs.

UserVars used in this script:

Other scripts used by this script:


horse-trainer

Teaches all skills to a horse.

Script usage: This script will go through the list of skills and try to teach a horse. The order teaches is leadrope, saddle, animal, joust, kneel, prance, beg, spin, jump, combat, magic, war. You must be a Ranger to run this.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


hunting-buddy

Trains combat skills (using combat-trainer) in defined hunting areas

Script usage: Will move through a series of defined hunting spots, training at each one until specified conditions are met. Stops at the first empty room it finds in the hunting area, will search for hiding players and wait 10 seconds for them to take any actions in rooms with monsters, moving on if a player is already there.

Script arguments:

(suffix): Any argument passed is treated as a filename suffix, loading an additional YourName-(suffix).yaml file merged into your settings for this run. If no arguments are given, uses the hunting_file_list setting, or defaults to 'setup'.

Settings used in this script:

hometown: Your character's hometown, used to look up town data for skinning/bundling rope purchases.
stop_on_familiar_drag: If true, stops hunting when dragged by a familiar while stunned. If false, returns to the hunting room instead.
stop_to_burgle: If true, stops hunting when it's safe to burgle again.
stop_on_low_threshold: Learning rate threshold at or below which a skill is considered to have dropped too low.
stop_on_high_threshold: Learning rate threshold at or above which a skill is considered to have learned enough.
armor_exp_training_max_threshold: Learning rate high threshold for the Armor skillset.
weapon_exp_training_max_threshold: Learning rate high threshold for the Weapon skillset.
magic_exp_training_max_threshold: Learning rate high threshold for the Magic skillset.
survival_exp_training_max_threshold: Learning rate high threshold for the Survival skillset.
lore_exp_training_max_threshold: Learning rate high threshold for the Lore skillset.
hunting_buddies_max: Maximum number of people allowed in a room before it's skipped when searching for a hunting spot.
prehunt_buffing_room: Room number where you can cast buffs before beginning hunt. List buffs under waggle_sets: with heading prehunt_buffs:.
prehunt_buffs: Fallback room used for prehunt buffing if prehunt_buffing_room is not set.
prehunt_buff_waggle: Name of the waggle set to use for prehunt buffing. Defaults to 'prehunt_buffs'.
hunting_disable_room_descriptions: If true, turns off room descriptions while hunting.
hunting_file_list: List of filename suffixes for additional YourName-(suffix).yaml files to merge and hunt from, used when no arguments are passed.
hunting_info: In order list of hunts.
hunting_info:zone: Name of hunting zone, must match one of the hunting or escort zone lists in base-hunting.yaml, or a custom_hunting_zones entry.
hunting_info:args: List of arguments to call combat-trainer with at this hunting area.
hunting_info:before: List of scripts to run before this hunt begins.
hunting_info:after: List of scripts to run after this hunt ends.
hunting_info:during: List of scripts to run in the background during this hunt.
hunting_info:duration: Time in minutes to hunt here if hunting_priority is false.
hunting_info:stop_on: List of skills that will stop hunting when they are all at 32/34.
hunting_info:stop_on_low: List of skills that will stop hunting when any of them drop to or below the low threshold.
hunting_info:boxes: Sets the hunt as a box priority hunt, will stop or skip if you have box_loot_limit number of boxes if set to true.
hunting_info:stop_on_boxes: Alternate key for boxes.
hunting_info:moons: If true, stops or skips this hunt when no moons are visible.
hunting_info:stop_on_moons: Alternate key for moons.
hunting_info:stop_on_encumbrance: Encumbrance level (0-11) at which to stop or skip this hunt.
hunting_info:stop_on_burgle_cooldown: If true, stops hunting once your burgle cooldown has reset.
hunting_info:disable_room_descriptions: Overrides hunting_disable_room_descriptions for this specific hunt.
hunting_info:full_waiting_room: Room to wait in while the zones are full, defaults to safe_room number if not present.
hunting_info:prefer_buddies: If true, prefers rooms containing your hunting_buddies when searching for a hunting spot.
hunting_info:avoid_buddies: If true, avoids rooms containing your hunting_buddies when searching for a hunting spot.
sell_loot_skip_bank: If false, waits for the 'restock' script to complete before hunting begins.
skinning:skin: If true, ensures you have a bundling rope before hunting.
waggle_sets: Waggle set definitions; the prehunt_buff_waggle set configures which buffs to cast before hunting.
safe_room: Room to return to and re-equip your gear set after all hunts are complete.
combat_trainer_gear_set: Name of the equipment set to wear after hunting completes. Defaults to 'standard'.
cyclic_no_release: List of cyclic spells to avoid releasing after a hunt or on script exit.
hunting_buddies: List of PC's that you're ok to share a hunting room with, remember proper Capitalization.
hunting_nemesis: List of PC's you do not want to hunt with, remember proper Capitalization.
custom_hunting_zones: Custom hunting zone definitions (room lists) defined in your own yaml, overriding or supplementing base-hunting.yaml.
empty_hunting_room_messages: List of messages to use when asking if a room is empty. A random message will be used each hunt.
hunting_room_min_mana: Minimum mana level of an acceptable hunting room.
hunting_room_strict_mana: If false, it will find any empty room in the event that no empty rooms are found above the minimum mana level.
hunting_room_max_searches: Maximum number of rooms to search for an empty hunting spot before giving up.
box_hunt_minimum: Minimum box count below which a box-priority hunt is allowed to run.
health_threshold: Health percentage below which the script exits combat and leaves the room.
stop_hunting_if_bleeding: If true, stops hunting when you are bleeding.

UserVars used in this script:

friends: Set each hunt to your hunting_buddies list; used to identify friendly PCs while searching for a hunting room.
hunting_nemesis: Set each hunt to your hunting_nemesis list; used to identify unwanted PCs while searching for a hunting room.
yiamura: Read to determine whether a recent yiamura raise is still pending nearby before stopping a hunt for reached skill thresholds.

Other scripts used by this script: combat-trainer, buff, restock, bescort, tendme


inventory-manager

Stores current "inv list" data in a YAML file for searching from any character... works across multiple accounts.

Script usage: Store and access any character's "inventory list". Prints a list of character names stored, prints individual inventory, and searches all inventory for any keyword(s). Includes an optional GTK GUI browser (;inventory-manager gui) for viewing, searching, exporting, and scanning saved inventory.

Script arguments:

count: Counts inventory items. Doesn't check inside closed containers.
desc: Optional specific count by description when using count. Use quotes for multiple word strings, i.e., "purple pouch".
save: Save new or update current character's items to the database.
vault_book: Uses vault book to get a list of items from your vault.
vault_regular: Rummages your vault to save items. NOTE: must be standing by your open vault.
storage_box: Rummages caravan storage box for items.
storage_book: Uses storage book to get a list of items from your caravan storage box.
family_vault: Rummages your family vault to save items. NOTE: must be standing by your open vault.
register: Reads contents of deed register.
eddy: Save the contents of an eddy (HE 436 Gift).
scrolls: Save spell scrolls tracked with sort-scrolls or stack-scrolls.
home: Save home inventory.
servant: Save shadow servant inventory.
shop: Save your Trader shop inventory.
pocket: Rummages your secret pocket container for list of items. NOTE: Must be wearing the container.
vault_standard: Uses VAULT STANDARD to get a list of items.
vault_family: Uses VAULT FAMILY to get a list of items.
ticket: Save ticket/currency information.
search: Start a search across all characters for specified item.
item: Item to find, used with search.
nest: Print the nesting container data, used with search or list.
list: Print out a list of names in the database.
name: For 'list', optional character name to show full inventory for (can spam). For 'remove', required character name to delete from the database.
remove: Remove character's inventory.
gui: Open a graphical browser for the saved inventory: collapsible character > source > container > item tree, live search, and Elanthipedia lookup.

Settings used in this script:

inventory_manager_ignores: List of item name prefixes to ignore when saving or counting inventory.
inventory_manager_vault_surfaces: List of vault surface name prefixes used to identify vault containers while parsing vault output.
scroll_sorter: Settings hash for scroll saving via sort-scrolls or stack-scrolls.
scroll_sorter:stacker_container: Container holding your scroll stacker(s), used if stacker_container is not set.
scroll_sorter:stacker: Name of your scroll stacker if using sort-scrolls (checks all ten books).
scroll_sorter:close_container: If true, closes the stacker container after saving scrolls.
stacker_container: Container holding your scroll stacker(s).
scroll_stackers: List of scroll stacker names to check if using stack-scrolls (no single stacker variable defined).

UserVars used in this script:

Other scripts used by this script: sorter


invoke-rune

Use to cast spells from runestones. The runestones are the ones purchased from Sierack's Reagents, https://elanthipedia.play.net/Sierack%27s_Reagents, in Shard. Can add more from Enchanting or other places.

Script usage:

invoke-rune "<spell name>" example
;invoke-rune "Clear Vision"

Script arguments:

spell: Name of the spells: "Arc Light" Althleticism Bless Calm "Clear Vision" Compost "Eagle's Cry" "Fire Shards" "Glythtide's Gift" Geyser "Protection from Evil" Refresh Shadows Zephyr. Use double quotes for spells with two or more words.
debug: Puts script in debug mode.

Settings used in this script:

buff_spell_mana_threshold: Minimum mana required before casting the spell from the runestone.
runestone_storage: Container used to hold and stow runestones.
runestone_harness: Harness item used to tap into mana when casting from a runestone.
runestone_purchase: If true, purchases a new runestone when you run out instead of stopping.

UserVars used in this script:

Other scripts used by this script: restock


jail-buddy

Handles being arrested in the crossing

Script usage: Keep running.

Script arguments:

Settings used in this script:

guilty_plea: How to plead when arrested, e.g. innocent or guilty.
sell_loot_money_on_hand: Amount of coin to keep on hand; used to determine how much coin to withdraw after resolving a jail encounter.

UserVars used in this script:

Other scripts used by this script: go2, outdoorsmanship, pay-debt


join-thieves

Joins the thieves guild in Crossing.

Script usage: Must be a Commoner to run this.

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script: find


journal

A script to use an epistemic journal. Best used as an after:

Script usage:

Script arguments:

Settings used in this script:

journal_noun: Set the noun of your journal, defaults to journal.

UserVars used in this script:

journal_last_use: Timestamp of the last time you wrote in your journal; used to enforce the 24-hour cooldown between writes.

Other scripts used by this script:


lamprey

Plays the Hollow Eve's game lamprey. Can only play this game once every 10 minutes if you get a lamprey or prize.

Script usage:

Script arguments:

Settings used in this script:

hollow_eve_loot_container: Storage container name.
hollow_eve_junk: List of item names considered junk; disposed of via the worn trashcan instead of being stowed.
worn_trashcan: Worn trashcan item used to dispose of junk and lampreys/prizes.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of items.

UserVars used in this script:

Other scripts used by this script:


levelup

Walks to your guild leader and levels up as many times as you can.

Script usage:
;levelup

Script arguments:

town: Town where to find your guild leader, overriding your character's hometown.

Settings used in this script:

fang_cove_override_town: Town to use in place of your hometown, if set.
hometown: Your character's hometown, used to determine where to find your guild leader.

UserVars used in this script:

Other scripts used by this script:


locksmithing

Trains locksmithing independently or with crossing-training. Can use unlimited training boxes, daily charge training boxes, or limited use disposable training items such as corn maze pouches, liquor cabinets, or burgled keepsake boxes. Also trains performance while picking.

Script usage: Can be used independently or by listing Locksmithing under crossing_training. If used with crossing_training additional feature train_with_burgle: true is available. The burgle_settings: loot_container is a shared feature for ease of use with keepsake boxes.

Example Settings:

# Do you use a worn lockpick ring for picking?
# If true then specify the name of your lockpick ring as the container.
use_lockpick_ring: true
lockpick_container: lockpick ring

# If false then the script will get a loose lockpick from the container.
#use_lockpick_ring: false
#lockpick_container: backpack

# When done picking boxes that contains coins, gems, and such,
# do you want to run the ;sell-loot script?
sell_loot: true

# Do you want to pick looted boxes from critters and such?
# If true then the ;pick script is ran using its settings.
# Refer to that script for how to set up those settings.
pick_live_boxes: true

# Do you want to pick a daily use lockbox trainer like a training box or harvest bag?
# If true then specify your trainer's name(s) in array format and whether it's worn or not.
training_box_list:
  - training box
picking_worn_lockbox: false

# Do you want to pick consumable boxes such as limited use trainers from burgling or incidentals?
# If true then list the names of those discardable consumables here.
# IMPORTANT! Consumable boxes will be pulled from your burgle_settings: loot_container.
# IMPORTANT! Consumable boxes should be kept separate from live boxes so as not to cause issues with ;pick script.
# IMPORTANT! THESE BOXES WILL BE DROPPED. MAKE CERTAIN YOU ONLY LIST THROW-AWAY TRAINERS.
consumable_lockboxes:
  - keepsake box
  - box puzzle
  - jewelry box
prioritize_consumable_lockboxes: true

# If you use a daily use lockpick trainer,
# be sure to add it to your gear: config.
gear:
- :adjective: training
  :name: box
  :skip_repair: true
  :container: backpack

Script arguments:

once: Pick a trainer once, for use with crossing-training.

Settings used in this script:

training_box_list: Array of adjective/nouns of daily lockpicking trainers.
picking_worn_lockbox: True if your daily trainer is worn.
consumable_lockboxes: Array of adjective/nouns of consumable lockpicking trainers, pulled from burgle_settings:loot_container.
prioritize_consumable_lockboxes: If true, uses up consumable lockboxes before leaning on daily trainer charges.
pick_live_boxes: If true, picks live boxes (via the pick script) before doing trainers.
burgle_settings:loot_container: Container consumable lockboxes are pulled from; shared with the burgle script.
use_lockpick_ring: If true, uses a worn lockpick ring. If false, uses a loose lockpick from lockpick_container.
lockpick_container: Container holding your loose lockpick; must be defined if not using a lockpick ring.
sell_loot: If true, runs the sell-loot script and walks to safe_room after picking live boxes.
safe_room: Room to walk to after selling loot from live boxes.
worn_trashcan: Worn trashcan item used to dispose of burned-out trainers.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of burned-out trainers.
gear: Equipment set definitions read by the shared EquipmentManager class; include your daily lockpick trainer here so it can be tracked and repaired.
have_training_box: Deprecated. Use training_box_list instead.
picking_lockbox: Deprecated. Use training_box_list instead.

UserVars used in this script:

Other scripts used by this script: performance, pick, sell-loot


makesteel

Makes steel ingots. The script will handle acquiring the needed materials.

Script usage:
;makesteel count [type] [refine]

Script arguments:

count: (required) number of ingots to produce
type: Carbon content, defaults to high. Options are: [l, m, h]
refine: If provided, refine the resulting ingot

Settings used in this script:

force_crafting_town: Overrides your hometown for crafting purposes; used in place of hometown if set.
hometown: City in which to make the ingots, defaults to Crossing.

UserVars used in this script:

Other scripts used by this script: smelt


mine

Mines a room while watching for danger

Script usage: Prospects and mines out your current room, stowing or deeding anything in your vein list. Will prospect careful for more materials after exhausting the room.

Script arguments:

yiamura: Mine a single room using a yiamura gatherer.

Settings used in this script:

mining_buddy_vein_list: List of metals and rocks that you wish to mine.
mining_implement: Shovel or pick.
mine_use_packet: Set to true to carry and use a deed packet, otherwise stow found minerals.
mining_skip_populated: If true, notes when returning from healing to a room with another player in it, in order to move on via mining-buddy.
forging_belt: Belt used to hold the mining implement.
mining_ignored_stone_sizes: List of stone size descriptors to ignore when stowing or deeding mined items.
mining_ignored_deed_sizes: List of size descriptors to exclude from deed packet use, stowing them normally instead.
mining_attempt_timer: Pause duration between mining attempts.
crafting_container: Container used to hold and stow the mining implement.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
mining_yiamura_resource_minimum: Minimum resource level required to continue mining a room with a yiamura gatherer.
adjustable_tongs: If true and your mining_implement includes tongs, attempts to adjust the tongs to a shovel instead of swapping implements.
forage_item: Item to forage/collect while mining with a yiamura gatherer.

UserVars used in this script:

Other scripts used by this script: safe-room, buff, yiamura


mining-buddy

Perform a single pass through the mines

Script usage: Will navigate through all listed mines, prospecting and stopping to mine anywhere it finds a resources it watches for. Can alternatively mine out each room it comes to, or merely look for resource rich rooms if you lack the skill to see resources. Will keep 1 plat on hand for repairs and buying deed packets. Will heal on injuries due to failed danger checks, or exit if buried. At the beginning of the script it will check for deed packets and buy more if it finds less than 2

Script arguments:

yiamura: Mine a single room using a yiamura gatherer.

Settings used in this script:

mines_to_mine: List of mine names to mine, matches up against the mining_buddy_rooms data in base.yaml.
mining_skip_populated: Set to true will NOT prospect and mine in rooms with other players.
mining_buddy_mine_every_room: Set to true will prospect and mine out each room regardless of minerals.
mining_buddy_vein_list: List of metals and rocks that you wish to mine.
mining_implement: Shovel or pick.
mine_use_packet: Set to true to carry and use a deed packet, otherwise stow found minerals
forging_belt: Belt used to hold the mining implement.
crafting_container: Container used to hold and stow the mining implement.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
hometown: Your character's hometown, used to look up deed and repair data.
mine_repair_own_tools: If true, self-repairs your mining implement instead of taking it to a repair shop.
adjustable_tongs: If true and your mining_implement includes tongs, attempts to adjust the tongs to a shovel instead of swapping implements.

UserVars used in this script:

mining_debug: Turns on debugging messages.
yiamura: Read to check the last pointed timestamp before mining a room with a yiamura gatherer.

Other scripts used by this script: mine, safe-room, buff


mining-manager

repeatedly mines in defined mining areas (using mining-buddy)

Script usage:

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script: mining-buddy, sell-loot


mm

A general purpose moon mage utility script

Script usage: Run the script without any arguments to see usage

Script arguments:

locate: Locates the given name and reports the room number if the locate was successful.
rift: Locates and rifts the given name to your current room. Checks if the moons are up. Uses the same settings as locate.
person: Name of the person to locate or rift.

Settings used in this script:

waggle_sets:locate: Optional. A waggle set called 'locate' with only the locate spell in it. Uses the data in DISCERN locate otherwise.
waggle_sets:rs: Optional. A waggle set called 'rs' with only the Riftal Summons spell in it. Uses the data in DISCERN RS otherwise.

UserVars used in this script:

moons: Read to determine which moons are currently visible and their timers before attempting to rift.

Other scripts used by this script:


moonwatch

populates UserVars.moons with data related to the moons

Script usage: Moonwatch will populate UserVars with the following data:

UserVars.moons = {
'katamba' => { 'pretty' => 'Katamba is up for 35 minutes', 'rise' => nil, 'set' =>35 },
'yavash' => { 'pretty' => 'Yavash will rise in 150 minutes', 'rise' => 150, 'set' => nil },
'xibar' => { 'pretty' => 'Xibar is up for 5 minutes', 'rise' => -1, 'set' => 5 }
'visible' => ['katamba', 'xibar']
}

We suggest using an alias such as:

;alias add moon = ;eq respond("#{UserVars.moons['katamba']['pretty']} : #{UserVars.moons['yavash']['pretty']} : #{UserVars.moons['xibar']['pretty']}")

You can PERCEIVE an individual moon to reset its data or PERCEIVE MOONS to reset all if this is a first start (or you've been offline for a while and the data seems wrong).

Script arguments:

debug: Enable debug output (becomes default for future runs).
nodebug: Disable debug output.
alias: Add an alias for the command moon that will display moon status.
window: Enable moon status window (becomes default for future runs).
nowindow: Disable moon status window.
log: Enable event logging + auto-observe each moon at rise (this character).
nolog: Disable moon event logging and rise auto-observe.
reset: Reset all moon offsets to zero and exit.

Settings used in this script:

UserVars used in this script:

moon_debug: Legacy/fallback debug flag, used if the persistent CharSettings debug flag is not set.
moons: Populated with per-moon rise/set/visibility/phase data. See Usage for the full structure.
sun: Populated with sun visibility and time-of-day data. See Usage for the full structure.
calendar: Populated with the current DR calendar date. See Usage for the full structure.

Other scripts used by this script:


multi

Executes a series of actions or scripts multiple times.

Script usage: Run on-demand or as part of 'before' or 'after' steps of other scripts or as customized actions to perform with T2.

Example Usage:

# This will cause you to sit then kneel then stand then repeat that sequence one time.
;multi 2,sit,kneel,stand

# This toggles autosneak flag before/after burgling.
burgle_settings:
  before:
  - multi 1,flag autosneak off
  after:
  - multi 1,flag autosneak on
  ...

# This example combines doing actions and running scripts.
# To run a script, prefix its name with a colon.
# It also passes arguments to the script (each argument separated by a space).
;multi 5,get sword from my backpack,:myForgingScript sword,put sword in my carryall

Script arguments:

commands: A comma-separated (or semicolon-separated) list of game commands and/or script invocations (prefixed with : or ;) to run in sequence, with a repeat count placed either first or last in the list.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


newbie-gear

Crafts a set of gear for a new character.

Script usage:

Script arguments:

storage: The container in which to store finished items

Settings used in this script:

UserVars used in this script:

Other scripts used by this script: makesteel, smith, workorders, spin, weave-cloth, sew


offload-items

Offloads all items from one source container to a destination container. Differs from transfer-items, because you can change the preposition. (I.e. on, in, under, behind, etc.) It may need to be run multiple times if you have a lot of stuff. If you use an adjective you must type it completely in double quotes, e.g. "hide sack", not "h sack".

Script usage:

  • Offloads all items from <source> <preposition> <destination>
 ;offload-items <source> <preposition> <destination>
 ;offload-items backpack on rack
  • Offloads only items that respond to <noun> from <source> <preposition> <destination>
 ;offload-items <source> <preposition> <destination> [noun]
 ;offload-items backpack on rack arrows

Script arguments:

source: Source container.
preposition: Preposition to use with the destination [in, on, under, behind]
destination: Destination container.
noun: Optional item, if specified only items with this noun will be transferred.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


oshu_manor

Navigates you through the Oshu Manor. Used to hunt Seordhevor kartais. Note there is an underscore in this script's name, not a dash.

Script usage:

Script arguments:

worm: Hunt grave worms.
kartais: Hunt seordhevor kartais.

Settings used in this script:

ignored_npcs: List of NPCs to ignore when checking if it's safe to dig a grave.

UserVars used in this script:

Other scripts used by this script:


paladin-quests

Completes the paladin Glyph quests for you. Must be a Paladin to run this.

Script usage:

Script arguments:

warding: Complete the Glyph of Warding Quest.
bonding: Complete the Glyph of Bonding Quest. This is more of a quester helper/escort. You will need to participate!
town: Town in which to complete the Glyph of Bonding quest: shard, crossing, or hib.
light: Complete the Glyph of Light Quest.
mana: Complete the Glyph of Mana Quest.
ease: Complete the Glyph of Ease Quest.
renewal: Complete the Glyph of Renewal Quest.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


pattern-hues

Casts Warrior Mage Pattern Hues cantrip at set intervals.

Script usage: The script will cast pattern hues cantrip based on settings in yaml. If no custom settings set, will cast a random color. Examples: ;pattern-hues now will cast now and exit. ;pattern-hues in you before, after, t2, manually, or in a personal startup script will change cast the cantrip on your interval and with settings. Leave pattern and hue empty if you want to pick from all the available options. Put what you only want the color to go to for random. Custom is for those lucky enough to have their own color (Dartellum has a custom color). Or, put the exact color you want in gesture, such as bright emerald.

Example Settings:

pattern_hues:
  duration: 600
  gesture: custom
  pattern_hues_styles:
    pattern:
    - bright
    - hazy
    - gleaming
    - lucent
    hue:
    - soot black
    - emerald
    - bone white
    - snowflake white
    - yellow
    - charcoal black
    - sky blue

Script arguments:

timing: Cast now and exit (accepts 'now').
debug: Output variable values.

Settings used in this script:

pattern_hues:duration: Seconds to pause between automatic casts.
pattern_hues:gesture: Set to random for a random pattern/hue combination, custom for a special custom color, or the exact color to gesture (e.g. bright emerald).
pattern_hues:pattern_hues_styles:pattern: List of pattern adjectives to pick from at random. Leave empty to pick from all available options.
pattern_hues:pattern_hues_styles:hue: List of hues to pick from at random. Leave empty to pick from all available options.
pattern_hues_no_use_scripts: List of script names; if any are running, automatic casting is skipped.
pattern_hues_no_use_rooms: List of room titles or IDs; while in one of these rooms, automatic casting is skipped.

UserVars used in this script:

Other scripts used by this script:


pay-debt

Pays your debt. Optionally retrieves your sack of belongings from the guard house.

Script usage:

Script arguments:

sack: Retrieve your sack of items from the guards.
province: Choose a province to pay your debt in [therengia, zoluren, ilithi, qi, forf]. Defaults to your hometown's province.

Settings used in this script:

hometown: Your character's hometown, used to determine currency and the default province to pay debt in.
sell_loot_money_on_hand: Amount of coin to keep on hand after exchanging currency to pay debt.

UserVars used in this script:

Other scripts used by this script:


performance

Script to train performance. Defaults to worn instrument but accepts an instrument setting

Script usage:

Script arguments:

noclean: Skip cleaning your instrument.
checksong: Only check what song to play for best learning then exit.
mindstate_goal: Train until mindstate is greater than or equal to this value, overriding performance_mindstate_goal.

Settings used in this script:

instrument: Optional. The instrument you would like to use. Defaults to worn instrument if none selected
worn_instrument: Optional. A worn instrument to verify is present before playing.
performance_mindstate_goal: Mindstate value to train performance until, if not overridden by the mindstate_goal argument.
hand_armor: Hand armor to remove before playing an instrument and re-wear afterward.

UserVars used in this script:

Other scripts used by this script:


performance-monitor

Logs combat-related events such as damage, roundtime, etc. for later parsing.

Script usage: Displays a small always-on-top window with live average roundtime and DPS per weapon, tracked from combat text as it scrolls by. Requires the ruby-gtk bindings and the textsubs script.

Script arguments:

Settings used in this script:

performance_monitor_weapons: List of weapon names to track hits, roundtime, and DPS for.

UserVars used in this script:

Other scripts used by this script: textsubs


pick

Disarms, unlocks, and loots monster boxes

Script usage: The script will look for suitable disposal sources in the room, or drop refuse on the ground. Refills lockpicking ring after finished.

  # Assuming YAML config matches your goals
  ;pick

  # Pick boxes in different bag, ignoring exp mind state, skipping identify
  ;pick source=backpack all careful
# Example 'Simple' Configuration
pick:
  debug: true
  tend_own_wounds: true
  picking_box_sources:
  - encompassing.shadows
  - lootsack
  trap_blacklist:
  - teleport
  - reaper
  - concussion
  blacklist_container:
  too_hard_container:

lockpick_type: stout iron
lockpick_dismantle: pray
stop_pick_on_mindlock: false
# Example "Higher Risk" Configuration
pick:
  debug: true
  disarm_quick_threshold: 0
  disarm_normal_threshold: 2
  disarm_careful_threshold: 5
  disarm_too_hard_threshold: 12
  pick_quick_threshold: 0
  pick_normal_threshold: 4
  pick_careful_threshold: 8
  trap_blacklist:
  - teleport
  picking_box_sources:
  - chef's bag
  - arm pouch

Script arguments:

debug: Turns on debug output
refill: Refill your lockpick ring
source: The container to get boxes from. Overrides 'pick.picking_box_sources' config setting.
all: Keep picking after mindlock. Overrides 'stop_pick_on_mindlock' config setting.
assume: Skips identification and assumes a given difficulty (i.e. ;pick careful will always do disarm/pick carefully)
stand: Stand to pop boxes. Default is sit.

Settings used in this script:

pick:debug: Turns on debug output. Defaults to false.
pick:use_glance: Set this to false to disable glance if you're a thief.
pick:trash_empty_boxes: Disposes of empty boxes in trash containers (or drops them) instead of dismantling; will use global worn_trashcan settings if set.
pick:assumed_difficulty: Skips identification step and uses this 'speed' for disarm and pick. NOTE: Using this will disable blacklist functionality.
pick:picking_box_sources: The list of bags that unopened boxes are stored in.
picking_box_source: Single bag that unopened boxes are stored in; used as a fallback if pick:picking_box_sources is not set.
pick:pick_quick_threshold: Difficulty rating to switch to 'pick quick'. Ratings below this will use 'pick blind'.
pick:pick_normal_threshold: Difficulty rating to switch to 'pick'. Ratings below this will use 'pick quick'.
pick:pick_careful_threshold: Difficulty rating to switch to 'pick careful'. Ratings below this will use 'pick'.
pick:disarm_quick_threshold: Difficulty rating to switch to 'disarm quick'. Ratings below this will use 'disarm blind'.
pick:disarm_normal_threshold: Difficulty rating to switch to 'disarm'. Ratings below this will use 'disarm quick'.
pick:disarm_careful_threshold: Difficulty rating to switch to 'disarm careful'. Ratings below this will use 'disarm'.
pick:disarm_too_hard_threshold: Difficulty rating to discard/store the box in the pick:too_hard_container.
pick:too_hard_container: The bag to put boxes into that are too difficult to disarm; discards too hard boxes if not set.
pick:max_identify_attempts: Number of identify attempts before giving up on a trap or lock. Defaults to 5.
pick:max_disarm_attempts: Number of disarm/pick retries before giving up on a box. Defaults to 5.
pick:disarm_on_failed_identify: If true, proceeds with a careful disarm/pick when identification fails instead of disposing of the box. Defaults to false.
pick:failed_identify_container: Container to stow boxes in when identification fails; trashed if not set.
pick:trap_blacklist: List of trap types to not auto disarm
pick:trap_greylist: List of trap types to force a careful disarm on.
pick:blacklist_container: Container to store blacklisted boxes in; discards blacklisted boxes if not set.
pick:harvest_traps: If true, analyzes and harvests trap components after a successful disarm.
harvest_traps: Fallback for pick:harvest_traps if not set.
pick:component_container: Container to stow harvested trap components in.
component_container: Fallback for pick:component_container if not set.
pick:tend_own_wounds: Decides to run tendme.lic after a box pops before heading to your saferoom. Defaults to false.
pick:balance_lockpick_container: If true (and using a lockpick ring), turns the ring to best before each pick attempt.
stop_pick_on_mindlock: true to stop after the current box when your mind is full.
use_lockpick_ring: Do you wear a lockpick ring?
skip_lockpick_ring_refill: Set this to TRUE in order to skip buying lockpicks after mind-locked. This is important if you have crafted lockpicks on the ring, since you can't use lockpicks of differing qualities on the same ring.
lockpick_container: Container holding your loose lockpicks, or your lockpick ring.
lockpick_type: Type of lockpick to stock on ring.
lockpick_dismantle: If you have a custom dismantle type to use, put it here.
lockpick_buff_bot: Name of a PC in the room to whisper a buff request to before picking.
pick:buff_bot_buff: Buff abbreviation to request from lockpick_buff_bot. Defaults to 'hol'.
waggle_sets:pick: Waggle set of buffs to use while picking; also released/stopped after picking finishes.
refill_town: Town to use when refilling your lockpick ring, overriding fang_cove_override_town and hometown.
fang_cove_override_town: Town to use in place of your hometown when refilling your lockpick ring, if refill_town is not set.
hometown: Your character's hometown, used as a fallback town for lockpick ring refills.
worn_trashcan: Worn trashcan item used to dispose of trashed items and boxes.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of items and boxes.
lootables: List of item name fragments considered gems/loot to stow into your gem pouch.
loot_specials: List of special items (with name and bag keys) to be stowed into a specific bag instead of the gem pouch or trash.
fill_pouch_with_box: If true, bulk-fills your gem pouch directly from the box before individually looting remaining items.
gem_pouch_adjective: Adjective of your worn gem pouch.
gem_pouch_noun: Noun of your worn gem pouch.
tie_gem_pouches: If true, ties your gem pouch closed after the first fill.
full_pouch_container: Container to stow a full gem pouch into when swapping for a spare.
spare_gem_pouch_container: Container holding a spare gem pouch to swap in when the worn one is full.
use_skeleton_key: If true, attempts to unlock boxes with a skeleton key before disarming/picking normally.
skeleton_key: Name of your skeleton key, used if use_skeleton_key is true.
saferoom_health_threshold: Health/wound score threshold above which the script heads to a safe room after a sprung trap.

UserVars used in this script:

Other scripts used by this script: tendme, buff, safe-room


release_cyclic

Releases all cyclic spells.

Script usage:

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


ranger-companion

Summons a companion and feeds it milk or corn if it's a baby, handles raising a baby pet to young age. Meant to be used as a during: in combat but works anywhere as long as you are stationary.

Script usage: Must be a Ranger to run this.

Script arguments:

Settings used in this script:

companion_corn_storage: Container to get and stow corn from/to when feeding a baby raccoon.
companion_milk_storage: Container to stow milk in after feeding a baby wolf.
companion_meat_storage: Placeholder setting; not currently used by this script.

UserVars used in this script:

Other scripts used by this script:


researcher

Does research on a single subject.

Script usage: Specify the subject as an argument, e.g. ;researcher augmentation. Requires the Gauge Flow spell to be known.

Script arguments:

skill: Research topic to study: fundamental, stream, augmentation, utility, warding, sorcery, energy, field, spell, plane, planes, road, wild, or attunement (aliased to stream).
symbiosis: Do symbiosis research. Requires sym_type to also be specified.
sym_type: Which symbiosis to research: activate, avoid, cast, discern, endure, examine, explore, harness, harvest, heal, impress, learn, perform, remember, resolve, spell, spring, strengthen, or watch.
debug: Enable debug output.

Settings used in this script:

research:debug: Enable debug output.
research:topic: Research topic to study, used if not provided as an argument.
waggle_sets:gaf: Optional waggle set called 'gaf' with only the Gauge Flow spell in it. Uses a minimal prep otherwise.

UserVars used in this script:

researcher: Hash tracking whether research is currently active ('researching') and the timestamp of the last status change.

Other scripts used by this script:


register

A script for searching your deed register.

Script usage: The script will search your deed register for the specified crafting material.

Example: ;register damite

   --- Lich: register active.
Output of reading register not shown here to save space.
      Results:
       45 -- a deed for a damite ingot (48V 91Q - pure Damite --Binu)
       46 -- a deed for a damite ingot (10V 86Q - pure Damite --Binu)
   [register]>stow right
   You put your register in your hunting pack.
   --- Lich: register has exited.

Script arguments:

query: The material you want to search for. Can also be information you entered in the deed note.
label: Labels page(s) of your deed register instead of searching. Must be used with page or all.
page: Page number to label, used with label.
all: Label all unlabeled deeds, used with label.

Settings used in this script:

crafting_container: The name of the container where you store your deed register.
writing_instrument: The name of the pen or writing instrument used to label deed register pages.

UserVars used in this script:

Other scripts used by this script:


remedy

A script for crafting remedies using alchemy.

Script usage: See examples:

 # ;remedy remedies 2 "blister cream" "red flower" nemoih bar mortar cream
 # ;remedy remedies 2 "blister cream" nemoih "not used" bar mortar cream  - for when only herb is required
 remedy <book type> <chapter> <recipe name> <herb1> <herb2> <catalyst> <container> <noun>
 Book type:    What alchemy type is this item. [remedies]
 Chapter: containing the item. 
 Recipe name:  Name of the recipe, wrap in double quotes if this is multiple words. 
 Herb1:        Prepared herb, wrap in double quotes if this is multiple words.. 
 herb2:        Prepared herb, wrap in double quotes if this is multiple words. Put none for none. 
 catalyst:     Type of catalyst. 
 container:    Type of container for creating. 
 noun:         End product [cream, salve, wash, balm, ungent, potion, tonic, ointment, elixir, poultices, draught]
 remedy <continue> <herb2> <catalyst> <container> <noun>
 continue      
 herb2:        Prepared herb, wrap in double quotes if this is multiple words. Put none for none. 
 catalyst:     Type of catalyst. 
 container:    Type of container for creating. 
 noun:         End product [cream, salve, wash, balm, ungent, potion, tonic, ointment, elixir, poultices, draught]


 Overrides for foraging (all setting in base):
 # container used to hold herbs for remedy.lic (optional) Not optional if overriding
 herb_container:
 # Following settings, including herb_container:, are required to override workorders for remedies
 # container used for raw herbs foraged - used by alchemy.lic script
 alchemy_herb_storage:
 # quantity of gathered herbs, recall a workorder requires 25 herbs per finished product
 # Set to your workorder_max_items: setting times 4. Example, if workorder_max_items: 4,
 # set this setting to 100.
 alchemy_herb_quantity:
 # How many prepared herbs you want:
 alchemy_prep_quantity:
 # if you want to forage careful
 alchemy_forage_type:
 # Set an override for foraging if Outdoorsmanship is high enough to find the herb anywhere
 forage_override_room:
 # Set an override for town
 forage_override_town:
 # Set this to true if you want to always forage for your herbs for workorders
 workorders_override_store: false

 workorder_recipes:
   remedies:
   - some skin ungent
   #- some skin tonic

 My guy's example:
 # Used by alchemy script #####
 alchemy_herb_storage: *back
 alchemy_herb_quantity: 25
 herb_container: *back
 alchemy_prep_quantity: 25
 #alchemy_forage_type:
 forage_override_room: 909 #8860
 forage_override_town:
 workorders_override_store: false
 ##############################

Script arguments:

book_type: What alchemy type is this item. [remedies]
chapter: Chapter containing the item.
recipe_name: Name of the recipe, wrap in double quotes if this is multiple words.
herb1: Prepared herb, wrap in double quotes if this is multiple words.
herb2: Prepared herb, wrap in double quotes if this is multiple words. Put none for none.
catalyst: Type of catalyst.
container: Type of container for creating.
noun: End product [cream, salve, wash, balm, unguent, potion, tonic, ointment, elixir, poultices, draught]
continue: Continue a remedy already in progress, skipping straight to combining herb2/catalyst/container/noun.

Settings used in this script:

crafting_container: Container used to hold and stow crafting items.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
alchemy_belt: Belt used to hold alchemy crafting items.
crafting_training_spells: List of training spells to release when the remedy is finished.
hometown: Your character's hometown, used to look up stock room data for buying water, alcohol, and catalyst.
mark_crafted_goods: If true, stamps the finished remedy with your crafting stamp.
cube_armor_piece: Cube item to touch for a crafting bonus before creating the item, if set.
alchemy_tools: List of your alchemy tool names, used to find your mortar/bowl/cauldron and pestle.
herb_container: Optional dedicated container to hold prepared herbs for remedy.lic.
water_container: Optional special container that can generate water; used instead of buying loose water if set.
alcohol_container: Optional special container that can generate alcohol; used instead of buying loose alcohol if set.
master_crafting_book: Name of your master crafting book, if you have one, used to find recipes instead of a basic remed book.
alchemy_room: Room to walk to after buying ingredients.

UserVars used in this script:

Other scripts used by this script: buff


repeat

A script for repeating a sequence of up to 10 commands. Does not take scripts.

Script usage: >;repeat "get my rock" "drop my rock"

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


restock

A script for restocking your supply of stackable and nonstackable items.

Script usage: Will parse your YAML for a restock set and make the appropriate purchases to maintain your desired quantity. This is called at the start of hunting-buddy as the preferred mechanism to maintain ammunition counts.

# This will purchase arrows from your hometown using all defaults; including quantity (which is 30)
restock:
  arrow

# This is the same as above, but with a custom quantity
restock:
  arrow:
    quantity: 45

# this is a completely custom item not contained in base-consumables. It will not change based on hometown. 
restock:
  super_cool_thing:
     name: cool thing
     room: 1337
     price: 10
     size: 3
     stackable: true
     quantity: 4

# Here are a list of generic items in base-consumables:
arrow
bolt
tk_ammo
rock

# Restock now supports custom Hometowns. This will be super useful if you use Shard as a hometown and need rocks from Hib. You can have as many as you want, but be reminded that we must support the hometown in base-towns.yaml. The hometowns will be visited in order from first to last, listed top to bottom.

hometown: Shard

restock:
  arrow:
    quantity: 50
  bolt:
    quantity: 50    
  rock:
    hometown: Hibarnhvidar
    name: smooth rocks
    room: 12172
    price: 45
    size: 30
    stackable: true
    quantity: 50

# restock can probably handle items with "charges" (i.e ritual foci) if they disappear/consumed once all charges are gone.

Script arguments:

debug: Use this arg to run the script in debug mode.

Settings used in this script:

restock: List of item names or hashes. A name will be searched in base-consumables based on your hometown setting, purchasing the appropriate version of that item found in that hometown. Any of the values pulled from base-consumables can be overridden by providing the appropriate key-value-pair under the item name within your YAML: name, room, price, size (how many obtained per purchase), stackable (t/f), quantity (how many to maintain on hand), and optionally min_quantity, countable_name, clerk, container, and hometown. See the example YAML above.
hometown: Your character's hometown; used as the default town to restock in, and to look up base-consumables data for items not overridden in your YAML.
fang_cove_override_town: Overrides your hometown for restocking purposes, if set.
sell_loot_money_on_hand: Amount of coin to keep on hand; used to determine how much coin to withdraw or deposit while restocking.
storage_containers: Containers to open before counting and restocking items.
runestone_storage: Container used to stow purchased runestones.

UserVars used in this script:

Other scripts used by this script:


rezz

A script to rezz corpses. Must be a Cleric to run this.

Script usage: The script will either raise the person you specify, or if you don't specify someone it will raise all of the corpses in the room. You should add a rezz: waggle set so that it doesn't use default values for rejuv and rezz.

Waggle set to add. Customize the mana and cambrinth values to your skill level:

 waggle_sets:
   rezz:
     Resurrection:
       abbrev: rezz
       mana: 17
     Rejuvenation:
       abbrev: rejuv
       mana: 10
       cambrinth:
       - 15

Script arguments:

player: The person you want to raise. Optional argument

Settings used in this script:

osrel_no_harness: true to infuse directly, false to harness first.
waggle_sets:rezz: Waggle set called 'rezz' with Resurrection and Rejuvenation spell data. Uses default spell data otherwise (see example above).

UserVars used in this script:

Other scripts used by this script:


roomnumbers

Adapted from a script by Geldan for Gemstone. Appends the Lich room ID# to your in-game room look.

Script usage: Example:

[Whistling Wood, Barrows]                                                                                                                          
A mound of earth looks curiously out of place beneath the twisted and warped branches of the dead trees.  Barren of all but the hardiest of grasses, the mound has several small
holes in its side.  You also see an Adan'f blood warrior, a chipped and weather-beaten sign, an Adan'f blood warrior and an Adan'f blood warrior.
Obvious paths: southeast, southwest, northwest.
Room Number: 9471

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


rummage

Standalone script that reformats the contents of a container as a table.

Script usage:

rummage <container>

Script arguments:

container: Provide the name of the container you want to rummage in.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


safe-room

Heals at a PC or NPC empath and shares items between characters by taking and dropping them in a safe room

Script usage: Gets 4 gold (for autopath), goes to the auto empath and waits until healed. Alternatively can go to a specific set of rooms and wait for 45 seconds for a player empath to heal you. You can list several PC empaths. The script will go to the nearest one from your current location. PC Empaths will heal themselves using healme, Necromancers will not attempt to go to an empath. Can be configured to stop by a room and pick up or drop given item nouns.

How to determine your health threshold

Wound severities are based on a 1-8 numeric scale according to https://elanthipedia.play.net/Damage

1. insignificant
2. negligible
3. minor
4. harmful (bleeding wounds)
5. damaging
6. severe
7. devastating
8. useless

The script uses an equation to tally up all your wound severities to see if your total damage exceeds your health_threshold: yaml setting. If yes, it gets you healed. If no, it skips healing.

The equation groups your wounds based on that numerical scale above so it knows the quantity of wounds at each severity. To know what severity your wound is you have to look at the wounds by body part table at https://elanthipedia.play.net/Damage#Wounds. For example, "some minor abrasions to the head" are considered insignificant and "cuts and bruises about the head" are considered minor.

Knowing the severities and having the wounds grouped, the equation computes a number for each group by squaring the severity and multiplying by the number of wounds in that group.

For example:

You have some minor abrasions to the head, some minor abrasions to the left arm, some cuts and bruises about the right arm, some tiny scratches to the left leg, some cuts and bruises about the right leg, some minor abrasions to the right hand.

would be grouped out to be:

1. insignificant x 3 wounds {minor abrasions to the head, left arm, and right hand} = (1^2 x 3) = 3
2. negligible x 1 wounds {tiny scratches to the left leg} = (2^2 x 1) = 4
3. minor x 2 wounds {cuts and bruises about the right arm and right leg} = (3^2 x 2) = 18
4. harmful x 0 = 0
5. damaging x 0 = 0
6. severe x 0 = 0
7. devastating x 0 = 0
8. useless x 0 = 0

The grand total of all those groupings is compared to your health_threshold: setting. In this example, the grand total is 3 + 4 + 18 = 25.

Script arguments:

skip: Skip running to the safe room, useful for Empaths and Necros.
force: Run healing logic even if there are no visible wounds.

Settings used in this script:

safe_room_tip_threshold: Amount of copper to carry for npc healing, or if you have more than this amount donate to player empath.
safe_room_id: Id of room for player empath healer or item exchanges.
saferoom_health_threshold: Skips saferoom healing unless the 'force' argument is used. This is a number that represents your wound severity. The calculation of your wound score is Sum(wound level
2 * number of wounds at that level).
safe_room_empath: Name of PC empath healer.
safe_room_empaths: A list of PC empaths with their name and room ID
safe_room_tip_amount: Amount in coppers to donate player empath.
safe_room: Id of room to heal self at as empath.
safe_room_give: List of nouns to drop at safe_room_id, CAUTION will drop all items of this noun there, don't use for anything valuable.
safe_room_take: List of nouns to pick up in safe_room_id.
force_healer_town: Override your hometown: setting to use an auto empath in a different town.
heal_with_divine_charm: true/false - Attempt to use a divine charm that new characters start with to heal, instead of an auto-path.
hometown: Your character's hometown, used to find the default NPC empath if force_healer_town is not set.
safe_room_withdraw_amount: Amount of coin to withdraw for NPC empath healing.
safe_room_keep_bank_amount: If set, minimizes and withdraws any bank balance above this amount when healing in a town other than your hometown.
performance_while_healing: If true, runs the performance script (noclean) while waiting at the NPC empath.
tome_while_healing: If true, runs the tome script (active) while waiting at the NPC empath.
healing_plant_adjectives: List of adjectives used to identify healing plants (e.g. velatohr) in the room to touch while waiting to be healed.
healing_plant_nouns: List of nouns used to identify healing plants in the room to touch while waiting to be healed.
necro_force_safe_room: If true, forces a Necromancer to use the NPC empath safe room instead of skipping healing entirely.
necro_safe_room_use_devour: If true, a Necromancer heals via repeated Devour casts instead of an empath.
necromancer_healing:Devour: Spell data for the Devour spell, used for Necromancer self-healing.
thanatology:harvest_container: Container holding harvested material used to fuel Devour healing.

UserVars used in this script:

safe_room_debug: Enables debug output showing the list of PCs standing in front of you at the empath.

Other scripts used by this script: healme, performance, tome, tendme


sanowret-crystal

Runs in the background, gazing or exhaling your sanowret crystal to train Arcana. Checks for concentration and current mindstate to run only when necessary. Supports worn crystals or stored in a container.

Script usage: This script can be run in passive mode or on-demand, and is well suited as part of your autostarts.

Run once on-demand: ;sanowret-crystal run=true

Run in the background: ;sanowret-crystal

Auto start: ;autostart add sanowret-crystal

Example Settings:

sanowret_adjective: sanowret
sanowret_no_use_scripts: # Don't try to use crystal while these scripts are active.
- sew
- carve
- tinker
- forge
- remedy
- shape
- enchant
- outdoorsmanship
- combat-trainer
- buff
- burgle
- go2
sanowret_no_use_rooms: # Don't try to use crystal while in these rooms.
- Carousel Chamber     # Room with vault
- Carousel Booth       # Room just before vault
- 1900                 # You can specify room ids, too (Crossing bank window)

Script arguments:

run: If present, only run the script once (instead of in passive mode).
exhale: Force exhale instead of gaze; better for concentration conflicts with other scripts.

Settings used in this script:

sanowret_adjective: Adjective of your sanowret crystal.
sanowret_no_use_scripts: List of script names; while any are running, the crystal will not be used.
sanowret_no_use_rooms: List of room titles or IDs; while in one of these rooms, the crystal will not be used.
sanowret_force_exhale: If true, forces exhale instead of gaze, used if the exhale argument is not passed.
ephemeron: Name of an ephemeron to manifest periodically (every 2 hours) in addition to using the sanowret crystal.

UserVars used in this script:

ephemera_last_use: Timestamp of the last time an ephemeron was manifested; used to enforce the 2-hour cooldown.

Other scripts used by this script:


schedule

Executes a series of actions or scripts (via multi script) if at least N minutes have elapsed since the last time they were done.

Script usage: Run on-demand or as part of 'before' or 'after' steps of other scripts or as customized actions to perform with T2. Whatever you can do with multi, you can do with schedule.

Syntax:

;schedule [timer-label], [timer-interval], [arguments for multi script]

Example Usage:

# This will cause you to sit then kneel then stand then repeat that sequence one time.
;multi 2, sit, kneel, stand

# This does the same as the above example but only if 5 minutes have elapsed since the last time this ran.
;schedule aerobics, 5, 2, sit, kneel, stand

# This configures crossing-repair to not run more often than every 2 hours
training_list:
- skill:
  - Small Edged
  ...
  start: 10
  scripts:
  - schedule repairs, 120, 1, :crossing-repair
  ...

Script arguments:

timer-label: Unique label identifying this scheduled action, used to track when it was last run.
timer-interval: Minimum number of minutes that must elapse since the last run before running again.
multi arguments: The remaining comma-separated arguments are passed through to the multi script (repeat count plus commands/scripts).

Settings used in this script:

UserVars used in this script:

schedule: Hash tracking, per timer-label, the next timestamp at which that scheduled action is allowed to run again.

Other scripts used by this script: multi


scroll-search

Searches through the given container for any and all spell scroll and displays them in a more readable way. Also allows for the player to grab a specific scroll or transfer scrolls between containers. This script allows you to search multiple containers and tracks the scrolls in each.

Script usage: Player specifies the container to search and the script looks through the container for any nouns matching the scroll noun list in base-items.yaml (plus any custom_scrolls you've configured).

Script arguments:

search: Searches the given container and labels any unlabeled scrolls.
container: The container to search, used with search.
list: Lists all of the scrolls that have been categorized after a search.
reset: Clear stored scroll list.

Settings used in this script:

custom_scrolls: List of additional scroll nouns to search for, appended to the built-in scroll noun list.

UserVars used in this script:

owned_scrolls: Hashset of the scroll name and the container it resides in.
scroll_counter: Global counter for the amount of scrolls owned.
scroll_search_debug: Turns on debug messaging for scroll-search.lic script.

Other scripts used by this script:


sell-loot

Sells gems and bundles; then deposits coin. Defaults to keeping 3 silver on hand (the maximum amount that cannot be stolen by a Thief).

Script usage: Will sell bundles and any gems in untied gem pouches. Optionally will make sure you have a spare gem pouch. It is intended to be used in The Crossing.

EXAMPLES:

  • ;sell-loot # Uses the default: keeps 3 silver
  • ;sell-loot 12 # Uses one argument: keeps 12 silver, which is withdrawn as 1 gold and 2 silver
  • ;sell-loot 4 g # Uses two arguments: keeps 4 gold

Script arguments:

town: Override the town to sell loot in.
amount: Amount of coin to withdraw after depositing all. Used with type. 3 silver, 5 gold, etc.
type: Denomination of coin to keep, used with amount.

Settings used in this script:

sell_loot_town: Town to sell loot in, overridden by the town argument, used in place of hometown if set.
hometown: Your character's hometown; used as a fallback town to sell loot in.
sell_loot_money_on_hand: Same as the Withdraw argument, overridden by the argument if both exist.
sell_loot_pouch: Set true to sell any gems in a worn pouch.
sell_loot_bundle: Set to true to sell a worn bundle.
sell_loot_metals_and_stones: Set to true to sell nuggets and bars (e.g. zinc nuggets and bronze bars).
sell_loot_metals_and_stones_container: The container (or list of containers) that has the nuggets and bars (e.g. zinc nugget and bronze bar) to sell.
sell_loot_ignored_metals_and_stones: List of metal or stone nuggets and bars NOT to sell.
sell_loot_traps: Sell harvested traps from boxes that are in your 'component_container'. Thief only.
spare_gem_pouch_container: The container to store a spare gem pouch in, should NOT be the container a pouch stows to.
spare_gem_pouch_target: How many spare gem pouches to keep stocked. Defaults to 5.
gem_pouch_adjective: Adjective you use to request gem pouches, you should be able to tap ADJ pouch to tap your current pouch.
gem_pouch_noun: Noun of your worn gem pouch.
sell_loot_skip_bank: If true, skip bank parts of the script (currency exchange, deposit, withdrawal), unless bankbot_enabled is also true.
sell_loot_skip_exchange: If true, skip currency exchange.
sell_loot_skip_pouch_close: If true, does not close the gem pouch after selling gems from it.
bankbot_enabled: If true, deposits coin with a bankbot instead of the in-game bank.
bankbot_name: The name of the bankbot with whom you would like to deposit coin.
bankbot_deposit_threshold: An amount of copper to keep on hand. Excess will be deposited with the bankbot. Your in-game bank will always be deposited into before the bankbot.
bankbot_room_id: The room ID of the bankbot.
autoloot_container: Container used by autoloot; also checked for sellable metals/stones if autoloot_metals is true.
autoloot_metals: If true, also sells metals/stones found in autoloot_container.
pick:component_container: Container holding harvested trap components, used as a fallback for selling traps if component_container is not set.
component_container: Container holding harvested trap components to sell, if sell_loot_traps is true.
sort_auto_head: If true, runs 'sort auto head' after selling traps.

UserVars used in this script:

Other scripts used by this script:


sell-pouches

Sell gem pouches for trading experience

Script usage: This script is called by crossing-training when you have 'Trading' listed as a training skill and 'sell_pouches_for_trading' set to true. You can also call it to sell a pouch.

Script arguments:

Settings used in this script:

hometown: Your hometown. This is used to determine which gemshop you will sell your pouches to
sale_pouches_container: Container where your pouches for sale are stored
waggle_sets:sell-pouches: Waggle set named 'sell-pouches', passed to the buff script to cast before selling a pouch. This is where you would include spell data for casting Finesse.

UserVars used in this script:

Other scripts used by this script: buff, sell-loot


setupaliases

Adds a useful selection of aliases to the global list:

Script usage:

  • rubyver - echoes the current Ruby version
  • lichver - echoes the current Lich version
  • cc - runs ;circlecheck to show your leveling status
  • as - accepts a trade offer and then stows the item
  • gs - gets the given item and then stows the item
  • ct - toggles crossing-training on or off
  • tm - toggles training-manager on or off
  • hb - toggles hunting-buddy on or off
  • t2 - starts T2 if it isn't running, or cleanly shuts it down if it is
  • t2shut - cleanly shuts down T2
  • t2noshut - cancels a pending T2 shutdown
  • t2reload - reloads T2 settings, pass a settings name to reload just that one
  • das - force checks all scripts in the repo for updates
  • ds - force updates one script from the repo, e.g. ds combat-trainer
  • dad - force updates data files from the repo
  • fr - find room, searches for a room description matching provided text
  • ids - echos the current mapped connections from the room you're standing in
  • lr - echos the full data of the room you're standing in
  • lfr - echos the full data of a remote room number, pass the number to it
  • ls - alias for the look command
  • cb and rec - these work as a pair, for recording room numbers (like setting up a hunting area); run cb to start, then rec in each room you want to record
  • dm and rm and mme - work as a set to update your map; use dm to download the latest map, wait for the 'Lich: repository has exited.' message, then use rm to reload the map, then mme to reapply your personal overrides
  • hz - list all hunting zones alphabetically
  • ez - list all escort hunting zones alphabetically
  • fz - search hunting zones and get room numbers, e.g. fz wark returns a list of room numbers for warklins
  • traderbonus - calculates your unofficial trader bonus according to elanthipedia
  • map - alias to ;map (or ;xnarost if the map script isn't installed but xnarost is)

Script arguments:

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


sew

Crafts tailoring items: sewing, knitting, and leatherworking, including armor enhancements (sealing, reinforcing, lightening).

Script usage:

Script arguments:

finish: What to do with the finished item: hold, log, stow, or trash.
type: What tailoring type is this item: knitting, sewing, or leather.
chapter: Chapter containing the item.
recipe_name: Name of the recipe, wrap in double quotes if this is multiple words. Also accepts enhancement names: seal, reinforce, lighten.
material: Type of material to use.
noun: Noun of item being crafted, enhanced, or resumed.
instructions: Use instructions instead of a recipe book.
knit: Tells sew to do the knitting routine.
skip: Skip restocking consumables if low (wax/pins/thread, or glue/stain when using instructions).
resume: Resume work on an item already in progress.

Settings used in this script:

force_crafting_town: Overrides your hometown for crafting purposes; used in place of hometown if set.
hometown: Your character's hometown, used to look up tailoring room data.
worn_trashcan: Worn trashcan item used to dispose of the finished item if finish=trash.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of the finished item.
crafting_container: Container used to hold and stow crafting items.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
outfitting_belt: Belt used to hold tailoring tools.
mark_crafted_goods: If true, stamps the finished item with your crafting stamp.
cube_armor_piece: Cube item to touch for a crafting bonus before working, if set.
master_crafting_book: Name of your master crafting book, if you have one, used to find recipes instead of a basic tailoring book.
crafting_training_spells: List of training spells to release when crafting finishes.

UserVars used in this script:

Other scripts used by this script: buff


shape

Crafts shaped/engineered items (bows, shafts, etc.), including bow enhancements (lamination, lightening, cable-backing).

Script usage:

Script arguments:

finish: What to do with the finished item: hold, log, stow, or trash.
chapter: Chapter containing the item.
recipe_name: Name of the recipe, wrap in double quotes if this is multiple words. Also accepts enhancement names: laminate, lighten, cable.
material: Type of material.
noun: Noun of item being crafted, enhanced, or resumed.
skip: Skip restocking consumables if low (glue/stain).
instructions: Use instructions instead of a recipe book.
resume: Attempts to continue an ongoing project, must be holding the item.

Settings used in this script:

force_crafting_town: Overrides your hometown for crafting purposes; used in place of hometown if set.
hometown: Your character's hometown, used to look up shaping room data.
worn_trashcan: Worn trashcan item used to dispose of the finished item if finish=trash.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of the finished item.
crafting_container: Container used to hold and stow crafting items.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
shaping_belt: Belt used to hold shaping tools; falls back to engineering_belt if not set.
engineering_belt: Fallback belt used to hold shaping tools if shaping_belt is not set.
mark_crafted_goods: If true, stamps the finished item with your crafting stamp.
cube_armor_piece: Cube item to touch for a crafting bonus before working, if set.
master_crafting_book: Name of your master crafting book, if you have one, used to find recipes instead of a basic shaping book.
crafting_training_spells: List of training spells to release when crafting finishes.

UserVars used in this script:

Other scripts used by this script: buff


sigilharvest

Script for sigil harvesting

Script usage: Harvests sigils based on parameters passed in as arguments. Can be used to target specific sigils or harvest sigils at random. Automatically detects the current season and reads base-sigils.yaml for rooms containing the desired sigil.

Example: ;sigilharvest shard congruence 70 10 debug

Example Settings:

sigil_harvest_settings:
  danger_rooms: [5713, 656] #Array. Avoid these rooms even if they're listed in base-sigils.yaml
  blank_scrolls: 50 #Integer. Minimum number of blank scrolls to keep on hand.

Script arguments:

city: Full name of city in the vicinity of which to harvest sigils. Supported cities are Crossing, Riverhaven, Shard, and Hibarnhvidar.
sigil: Name of sigil to target or 'random' to target a random sigil every loop.
precision: Target precision 1 to 100. The script will harvest any sigils that meet or exceed this number. Use '101' to never harvest. Using very low precisions could result in a high number of items in your bags.
minutes: Optional. Session time limit in minutes. Defaults to 30.
debug: Optional. Use 'debug' as final arg to generate additional debug messaging about what the script is doing.

Settings used in this script:

sigil_harvest_settings: Settings hash for sigil-harvest. Optional overall; by default the script avoids most rooms which contain enemies and will maintain a stock of at least 25 scrolls.
sigil_harvest_settings:danger_rooms: Array of room IDs to avoid even if they're listed in base-sigils.yaml.
sigil_harvest_settings:blank_scrolls: Integer. Minimum number of blank scrolls to keep on hand. Defaults to 25.
enchanting_tools: List of your enchanting tool names; used to find your burin.
crafting_container: Container used to hold and stow crafting items, including blank scrolls and the burin.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
enchanting_belt: Belt used to hold your burin, if worn there instead of in your bag.

UserVars used in this script:

Other scripts used by this script:


sigilrecorder

Scouts rooms in a supported town/region to detect and record sigil locations for all known sigils, writing the results to data/base-sigils.yaml for use by sigilharvest.

Script usage: Stand in a room within a supported region and run the script. It detects your current region and the season, builds a list of nearby rooms to search (excluding known hunting zones and previously-flagged bad rooms), then walks to each one and uses 'perceive sigil' to find up to two sigils per room. Rooms that already have two known sigils for the current season are skipped. Rooms that prove dangerous, unreachable, or otherwise unsuitable are added to a no-go list so future runs skip them. When the search is complete it walks back to the room where it was started.

Script arguments:

debug: Optional. Use 'debug' as an arg to generate additional debug messaging about what the script is doing.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


skill-recorder

Passive background script that periodically updates a set of UserVars reflecting your effective skill ranks and guild-specific flags, for use by stringprocs in the map database, wayto overrides, and other scripts.

Script usage: Start the script and leave it running in the background; it silences its own output and loops indefinitely, refreshing tracked values on a delay with no further input needed.

Script arguments:

Settings used in this script:

skill_recorder_passive_delay: Number of seconds to pause between each pass of the update loop.
skill_recorder_check_exp_mods: Boolean. If true, checks your actual effective skill ranks (via exp mods) each loop instead of assuming a flat 10% bonus from active buffs; also detects curses that reduce your effective ranks.
flying_mount: Boolean. Whether you're using a flying mount that allows you to skip athletics checks when moving. Stored to UserVars.flying_mount for use in map stringprocs and wayto overrides.

UserVars used in this script:

UserVars.flying_mount: Set from the flying_mount setting; read by map stringprocs/wayto overrides to determine if athletics checks can be skipped when moving.
UserVars.athletics: Your current effective Athletics rank, boosted by 10% if Athleticism, Khri Flight, or Unyielding is active and no exp mod change is detected.
UserVars.scouting: Cleared (set to nil) if you're a Ranger.
UserVars.instinct: Your current effective Instinct rank, set if you're a Ranger.
UserVars.thief_tunnels: Hash of available thief tunnel/passage routes, populated if you're a Thief above circle 5; includes crossing_leth if Athletics is 25 or higher.
UserVars.know_rezz: Boolean. True if you're a Cleric who knows the Resurrection spell.

Other scripts used by this script:


slackbot

If the status-monitor script detects an problem, it will use this script to send you a Direct Message on Slack.

Script usage: This script should not be run directly. Instead, status-monitor will run it if the slack_username setting is present. On first time setup you will communicate with a lichbot to get a slack token. The token lets you send messages to your username via the bot. You will currently not receive any notification on setup.

Script arguments:

Settings used in this script:

slack_username: Your Slack username. It should be all lowercase.

UserVars used in this script:

slack_token: The token used to authenticate to a Slack team.

Other scripts used by this script:


smartlisten

Runs in the background and automatically listens whenever another player lectures on a skill you've approved, so you gain the associated experience without having to react manually.

Script usage: Start the script and leave it running. It builds a list of skills to listen for from your listen_skills setting, then automatically adds Life, Elemental, Lunar, and Holy Magic (unless you're a Barbarian or Thief) plus guild-specific skills for your class (e.g. Bardic Lore for Bards, Theurgy for Clerics, Instinct for Rangers), removing Arcana for Barbarians. Whenever another player begins to lecture you on an approved skill, the script safely pauses other running scripts, listens to the teacher, then resumes them.

Script arguments:

Settings used in this script:

listen_skills: Array of skill names you want the script to listen for, in addition to the guild-specific and magic skills it adds automatically.
listen_observe: Passed to DRC.listen? to control whether you actively participate in listening or simply observe.

UserVars used in this script:

Other scripts used by this script:


smarttransfer

Safely transfers wounds from a target to yourself, checking that the combined wound severity in each body part won't create a fatal or useless injury before transferring.

Script usage: Call the script with the name of the player you want to heal. It checks both your own wounds and the target's, sums the severity per body part (including scars), and only transfers wounds for parts where the resulting combined wound stays below the fatal/useless threshold. If every wound on the target is safe to take, it transfers everything at once; otherwise it transfers only the safe parts one at a time.

Script arguments:

player: Name of the player to heal.
bleed: Optional. If present, leaves external bleeders on the target (transferring only their internal wounds and already-scarred external wounds) instead of transferring the fresh external bleed.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


smash-pumpkins

Repeatedly buys a pumpkin from the pumpkin vat and smashes it in a nearby room for loot, discarding junk and stowing anything worth keeping, until you're too hurt to continue.

Script usage: Run the script from within the event area. It walks to the vat and grabs a pumpkin, withdrawing platinum from the bank if you run out of coin, then walks to a nearby room to break it. Loot matching your junk list is dropped in a bucket; everything else is stowed. If pumpkin leeches spawn and bite you, the script pauses and waits for tendme to heal you before continuing. The loop stops if you start bleeding, your health drops below 50, or you run out of money, and the script then walks back to a safe room.

Script arguments:

Settings used in this script:

pumpkin_junk: Array of item name substrings to treat as junk and discard in the bucket rather than stow.

UserVars used in this script:

Other scripts used by this script: tendme: Called to heal you if pumpkin leeches bite you during the loop.


smelt

Smelts the contents of a crucible, tending fuel and stirring until the metal is fully mixed. Assumes material has already been placed in the crucible. Can also refine metals by adding flux instead.

Script usage: Call the script after placing material into a crucible. By default it stirs the crucible with your rod, automatically pushing your bellows or adding fuel with your tongs/shovel as needed, until the metal is thoroughly mixed. Use 'refine' to instead pour flux into the crucible to refine metals.

Script arguments:

refine: Optional. Pours flux into the crucible to refine metals instead of stirring/smelting.

Settings used in this script:

crafting_container: Container used to hold and stow crafting tools.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
forging_belt: Belt used to hold forging tools, if worn there instead of in your bag.
forging_tools: List of your forging tool names; the script looks for one containing 'rod' to use as your stirring rod, defaulting to 'stirring rod' if none is found.
adjustable_tongs: Boolean. Whether you have adjustable tongs, allowing tongs to be used in place of a shovel for adding fuel.

UserVars used in this script:

Other scripts used by this script:


smelt-deeds

Combines multiple deeds of the same metal into a single ingot to save inventory space.

Script usage: Call the script with deeds in your inventory. It scans all your deeds, groups them by metal type, and for any metal with more than one deed, finds an empty crucible in your hometown, taps and loads each matching deed into it, then runs smelt to combine them into a single ingot, which is packeted and stowed along with the used-up deed.

Script arguments:

material: Optional. Name of a single alloy (steel, bronze, pewter, or brass) to restrict smelting to just that metal.

Settings used in this script:

adjustable_tongs: Boolean. If true, uses tongs in place of a shovel when checking for required tools.
hometown: Your character's hometown, used to locate an empty crucible.

UserVars used in this script:

Other scripts used by this script: smelt: Called to smelt the loaded crucible into an ingot.


smith

Crafts blacksmithing, weaponsmithing, or armorsmithing items at an anvil or private forge, optionally buying the ingot and parts, stamping the finished item, and applying enhancements.

Script usage: Call the script with the ingot's metal type and the recipe name (wrap multi-word names in double quotes). It buys any required parts (and the ingot, if requested) and walks to your private forge or the town anvil, checking and auto-renewing your forge rental if using a private forge, before handing off to forge to craft the item. Any requested enhancements (temper, hone, balance, lighten, reinforce) are applied afterward via additional calls to forge, and the item is stamped with your maker's mark if requested. Leftover scrap ingot and used parts are disposed of automatically. Use 'here' to skip walking to the anvil/forge and craft in your current room instead, useful for portable forge wands or an already-rented private forge.

Script arguments:

material: Metal type of the ingot.
item_name: Name of the recipe, wrap in double quotes if this is multiple words.
stamp: Optional. Stamps the completed item with your maker's mark.
here: Optional. Forces it to forge in the room you are currently in, useful for private forge rentals or forge wands.
temper: Optional. Tempers the crafted item, boosting durability.
hone: Optional. Hones the crafted item (weapon only), reducing weight and impact.
balance: Optional. Balances the crafted item (weapon only), increasing balance at the cost of suitability.
lighten: Optional. Lightens crafted armor or shield, reducing weight only.
reinforce: Optional. Improves some absorption/protection stats at the cost of increased weight and hindrance.
buy: Optional. Purchases the ingot needed for the recipe.

Settings used in this script:

force_crafting_town: Overrides your hometown for crafting purposes; used in place of hometown if set.
hometown: Your character's hometown, used to look up blacksmithing room data.
crafting_container: Container used to hold and stow crafting items.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
forging_belt: Belt used to hold forging tools, if worn there instead of in your bag.
workorders_materials: Hash specifying the metal_type used to look up ingot stock info when buying.
use_private_forge: Boolean. Use a rented private forge instead of the public anvil; your hometown or force_crafting_town must have a private forge available.

UserVars used in this script:

Other scripts used by this script: [[Lich script repository#buff: Called before crafting to apply smithing-related buffs. ^ forge: Called to perform the actual crafting|buff: Called before crafting to apply smithing-related buffs. ^ forge: Called to perform the actual crafting]], and again for each requested enhancement.


smoke

Trains smoke-image skills by repeatedly inhaling and exhaling images from a pipe or cigar, automatically lighting your smoker and prioritizing your least-mastered images. Can also teach a known image to another player, or learn an image being taught to you.

Script usage: Requires a 'smoke:' settings block in your YAML (see Settings below) with at minimum 'container' set. Reads "smoke list" to determine which images you know and their mastery tier, then practices the lowest tier first, re-checking between rounds to follow advancements. Warrior Mages light their smoker automatically; everyone else needs a 'lighter' or a 'blade' set for flint and steel.

;smoke pipe
;smoke pipe [image] [repeat] until_out
;smoke [fine] cigar light_only
;smoke reset_known
;smoke teach pipe [player] [image]
;smoke learn pipe [player]

Script arguments:

pipe: Uses the pipe defined in your YAML settings.
cigar: Noun of the cigar to smoke, e.g. 'fine cigar' or just 'cigar'.
image: Optional. Practice a specific image from your known list instead of letting the script pick.
repeat: Optional. Number of pieces of tobacco to smoke.
until_out: Optional. Smoke until out of tobacco or cigars.
light_only: Lights the provided smoke utensil (pipe or cigar) and stops.
reset_known: Resets your stored list of known/mastered smoke images, used after learning one or more new images.
teach: Teaches known image(s) to another player. Requires pipe or cigar, and a player name; optionally a specific image.
learn: Learns image(s) being taught by another player. Requires pipe or cigar, and the teacher's player name.
player: Character to teach or learn from.

Settings used in this script:

container: Required. Container where your smoking supplies (pipe, cigars, tobacco, lighter) are stored.
pipe: Required unless smoking a cigar. Noun/adjective of your pipe, e.g. 'glitvire pipe'.
lighter: Optional. Your preferred lighter; falls back to flint and steel if unset.
blade: Optional. Blade used to strike flint and steel when no lighter is set; must match an item known to EquipmentManager. Be sure flint is also stocked in your container.
lighter_tied_to: Optional. Where your lighter is tied, if it's tied rather than stored loose.
time_between_exhales: Optional. Seconds to pause between exhales. Defaults to 1.
clean_list_of_mastered: Optional boolean. Skip fully mastered (master*) images when building the training pool.
smoke_images: Optional array. Curated pool of images to train from, instead of your full known list.
smoke_room: Optional. Room ID to walk to before starting the training loop.
YAML Setup Example:

  smoke:
    container: smoking jacket
    pipe: glitvire pipe
    lighter: lava drake
    blade: serrated parazonium
    time_between_exhales: 3
    clean_list_of_mastered: true
    smoke_images:
      - deer
      - tart

UserVars used in this script:

UserVars.smoke_images_known: Array of images the script has last seen on your "smoke list", used to populate the image argument options.
UserVars.smoke_images_mastered: Array of images you've reached master* tier on.

Other scripts used by this script:


sorcery

Trains the Sorcery skill, either by repeatedly casting a configured sorcery spell or, if none is configured, by focusing a runestone.

Script usage: Typically called from a training loop such as crossing-training. If crossing_training_sorcery is set, walks to the training room and casts the configured spell (waiting for mana and any stun) up to 3 times or until Sorcery experience reaches 30, calling safe-room between casts. If no spell is configured and your Sorcery rank is 50 or below, it instead gets your runestone and focuses it up to 5 times or until experience reaches 30, then stows it.

Script arguments:

Settings used in this script:

crossing_training_sorcery: Spell to cast for Sorcery training. Either a spell name/prep string, or a hash accepted by DRCA.cast_spell.
crossing_training_sorcery_room: Room ID to walk to before casting the training spell.
crossing_training_force_cambrinth: Passed to DRCA.cast_spell when casting a hash-defined spell.

UserVars used in this script:

Other scripts used by this script:


sort-scrolls

An alternative to stack-scrolls. Sorts scrolls into guild-labeled scroll stackers (cases) that all share the same noun. Can also find and pull a specific spell scroll from your cases, or unleash a scroll's spell directly from its case.

Script usage: When run without any arguments, it searches your default_container (or the specified container) for scrolls, determines each scroll's guild (reading its label if already labeled, or reading the scroll to identify the spell if not), and pushes it into the matching guild's case. Analogous Pattern (AP mana) scrolls can't be stacked and are discarded as trash. If a case fills up, overflow goes into the "Extras" case.

You need 10 scroll stackers all with the same noun, and you have to put a wax label on each of them and label them with guild names. They should look like this:

a striking felwood scroll case topped with a trio of silver-infused Gnomish kocho labeled "Bard"
a striking felwood scroll case topped with a trio of silver-infused Gnomish kocho labeled "Cleric"
a vibrant pink leather scroll case lined with spun rainbow labeled "Empath"
a vibrant pink leather scroll case lined with spun rainbow labeled "Moon Mage"
a vibrant pink leather scroll case lined with spun rainbow labeled "Necromancer"
a striking felwood scroll case topped with a trio of silver-infused Gnomish kocho labeled "Paladin"
a vibrant pink leather scroll case lined with spun rainbow labeled "Ranger"
a cerulean watersilk scroll case secured with a silver clasp labeled "Trader"
a vibrant pink leather scroll case lined with spun rainbow labeled "Warrior Mage"
a cerulean watersilk scroll case secured with a silver clasp labeled "Extras"

The "Extras" case is for overflow if any of the other cases get full.

Example Configuration

scroll_sorter:
    stacker: scroll folio
    stacker_container: haversack
    unleash_mana: 30
    unleash_harnesses: 2
    close_container: false

Script arguments:

;sort-scrolls [container] Searches the specified container for scrolls instead of default_container.
;sort-scrolls find [spell] Finds a scroll matching the spell specified and removes a copy if one exists. You can search for partial names, but if it matches more than one spell (fire rain, fire shards, etc.), it picks the first one alphabetically.
;sort-scrolls unleash [spell] Finds a scroll matching the spell specified, preps and harnesses to the configured mana level, casts it via unleash, then restocks the emptied scroll back into its case.

Settings used in this script:

default_container: Container to search for scrolls when no container is specified as an argument.
scroll_sorter:stacker: The noun, or adjective and noun, of the case type you're using.
scroll_sorter:stacker_container: Where you have your cases stored. The script will put them back there as well. Falls back to default_container if not set.
scroll_sorter:unleash_mana: Mana level to harness to before casting when using the unleash argument.
scroll_sorter:unleash_harnesses: Number of harnesses to split the unleash prep across. Defaults to 1.
scroll_sorter:close_container: Closes the stacker container when the script ends if this is true.

UserVars used in this script:

Other scripts used by this script:


sorter

Runs quietly in the background and reformats "you see" style contents from container looks, room searches, and inventory listings into a categorized, sorted, optionally columnized list.

Script usage: Start it and leave it running in the background. It hooks into the downstream data and rewrites matching lines (looking in/on/under a container, "look" searching the room for items, your own or another player's worn inventory) into a list grouped by item category, sorted alphabetically, with duplicate items counted. If the width setting is greater than 0, output is arranged into aligned columns per category; otherwise items are listed as a comma-separated line per category.

Script arguments:

Settings used in this script:

sorter:width: Column width used for table-style output. If greater than 0, output is arranged into columns; if 0 or unset, output is a simple comma-separated list.
sorter:ignore_categories: Regex/string of category names to exclude from categorization, leaving matching items as 'other'. Defaults to 'nil' (nothing ignored) if unset.
sorter:mute_old_inventory: Boolean. If true, suppresses the original unformatted game text for lines the script is set to reformat, before the sorted output is shown.
sorter:sort_look_items_command: Boolean. Enables reformatting of results from searching the room for items.
sorter:sort_inv_command: Boolean. Enables reformatting of your own worn inventory listing.
sorter:sort_look_others: Boolean. Enables reformatting of another player's worn inventory listing when you look at them.

UserVars used in this script:

UserVars.sorter_debug: Set to 'true' to echo debug info (item name, detected noun, and assigned category) as items are sorted.

Other scripts used by this script:


spin

Buys and combines fiber, then spins it into thread or yarn at a chosen thickness on a spinning wheel. This script is intended to be used in The Crossing.

Script usage: Call the script with the material to spin. It buys the needed quantity of that fiber from the tailoring stock room in your hometown, combining each purchase into a single bundle of fiber (silk is first marked and trimmed down with scissors), then walks to a spinning wheel, loads the fiber, sets the wheel to the requested thickness, and works the wheel (cleaning, turning, or pushing it as needed) until a finished item is produced, then stows it.

Script arguments:

material: Fiber to spin: silk, cotton, linen, wool, or burlap.
weight: Optional. Thickness to spin to: fine, thin, average, thick, heavy, or yarn. Defaults to heavy.

Settings used in this script:

force_crafting_town: Overrides your hometown for crafting purposes; used in place of hometown if set.
hometown: Your character's hometown, used to look up tailoring stock room and spinning wheel data.
crafting_container: Container used to hold and stow crafting items, including scissors.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
outfitting_belt: Belt used to hold crafting tools, if worn there instead of in your bag.

UserVars used in this script:

Other scripts used by this script:


stabbity

Stabbity is designed for thieves, and relies on backstab and thrown weapons to kill things quickly. It's useful in invasions and events.

Script usage: When run without a mode specified (e.g. ;stabbity), stabbity will wield your weapon and hide, killing any mob in the room. If no mobs are present, it will wait in hiding for one to arrive.

Example Configuration

stabbity:
  eliminate: true
  weapons:
    preferred: glaes pasabas
    alternate: judge's gavel
    thrown: throwing club
  use_alternate_on:
    - archer
    - soldier
    - dryad
    - oshu
    - frostweaver
    - guardian
  use_thrown_on:
    - hawk
    - gryphon

Script arguments:

mode: Optional, can be one of:
  • equip: Wields your preferred weapon.
  • cleanup: Sheathes your preferred weapon.
  • single: Kills all mobs in the current room and exits. Does not wait for a mob to arrive.
  • arena: Used to run the Dusk Ruin arena.
noloot: Do not loot mobs when killed.

Settings used in this script:

stabbity:eliminate: True/False. Only used during arena. Will use khri eliminate at the beginning of rounds 5/10/15/20/25. Only include if you are a thief with khri eliminate.
stabbity:weapons:preferred: The name of the weapon you wish to backstab with.
stabbity:weapons:alternate: The name of the weapon you wish to use for mobs defined in use_alternate_on.
stabbity:weapons:thrown: The name of the weapon you wish to use for mobs defined in use_thrown_on. If this is left off, then it will never try thrown (useful for characters with passive abilities that can force flying things to land -- e.g. khri terrify).
stabbity:use_alternate_on: List of mobs on which to use your alternate weapon.
stabbity:use_thrown_on: List of mobs on which to use your thrown weapon.
ignored_npcs: List of mobs to never target, outside of arena mode.
custom_loot_type: Loot type/argument passed to the 'loot' command when looting a killed mob.

UserVars used in this script:

stabbity_debug: Turns on debugging messages.

Other scripts used by this script: wand-watcher


stack-scrolls

Scroll-stacker management suite. Stacks loose scrolls from a container into your scroll stackers, retrieves single copies, reports inventory and statistics, and runs simulate-then-confirm maintenance passes (prune, consolidate, clean).

Script usage:
;stack-scrolls [container]              -- stack every scroll found in [container] into your stackers
;stack-scrolls                          -- display a flat list of all scrolls currently in your stackers
;stack-scrolls get [spell]              -- pull one copy of [spell] (name or abbreviation) from your stackers
;stack-scrolls mana [type]              -- list scrolls of a given mana type (lunar, holy, life, arcane, ap, elemental)
;stack-scrolls summary                  -- verbose overview of all stackers, including mana types
;stack-scrolls reset                    -- clear the cached stacker data and repopulate it from your actual stackers
;stack-scrolls clean [keep] [confirm]   -- simulate (or, with confirm, execute) a consolidate-plus-cleanup pass; add keep to stow removed scrolls instead of trashing them
;stack-scrolls prune [confirm]          -- simulate (or execute) removing scrolls not in keep_scrolls or exceeding your configured limits
;stack-scrolls consolidate [confirm]    -- simulate (or execute) moving all scrolls into as few stackers as possible

Scrolls are matched to spells by reading their label (or reading the scroll itself if unlabeled/glyph). Filtering is exact-match (case-insensitive) against a spell's full name or abbreviation: discard_scrolls always wins, an empty keep_scrolls keeps everything not discarded, and a non-empty keep_scrolls keeps only its matches. Excess scrolls that don't fit are stowed back in the source container by default, or trashed if trash_excess_scrolls is set. Example Configuration

stack_scrolls:
  stackers:
    - scroll.folio
    - abyssal-black.codex
  stacker_container: haversack
  keep_scrolls: []
  discard_scrolls: []
  trash_excess_scrolls: false
  max_scrolls_per_spell: 100
  max_scrolls_per_slot: 125
  log_statistics: false

Script arguments:

container: Container to collect loose scrolls from and stack.
get: Followed by a spell name/abbreviation. Pulls one copy of that spell from your stackers.
mana: Followed by a mana type (lunar, holy, life, arcane, ap, elemental). Lists scrolls of that mana type.
summary: Displays a verbose overview of all stackers, including mana types.
reset: Clears the cached stacker data and repopulates it.
clean: Optionally followed by keep and/or confirm. Consolidates and removes unwanted scrolls; simulates unless confirm is given.
prune: Optionally followed by confirm. Removes scrolls not in keep_scrolls or exceeding configured limits; simulates unless confirm is given.
consolidate: Optionally followed by confirm. Moves all scrolls into as few stackers as possible; simulates unless confirm is given.

Settings used in this script:

stack_scrolls:stackers: Required. Array of your stacker item names, e.g. scroll.folio.
stack_scrolls:stacker_container: Container the stackers live in.
stack_scrolls:keep_scrolls: Whitelist of spell names/abbreviations to keep. Empty means keep all (except discarded).
stack_scrolls:discard_scrolls: Blacklist of spell names/abbreviations to trash. Takes priority over keep_scrolls.
stack_scrolls:trash_excess_scrolls: Boolean. Trash (true) or stow (false, default) excess scrolls that won't fit in the stackers.
stack_scrolls:max_scrolls_per_spell: Optional global cap on total copies of any one spell across all stackers.
stack_scrolls:max_scrolls_per_slot: Optional cap on copies within a single section/slot (game max is 125).
stack_scrolls:log_statistics: Boolean. Write a per-run statistics log file. Defaults to false.
worn_trashcan: Shared top-level setting (not nested under stack_scrolls). Worn trashcan used to dispose of trashed scrolls.
worn_trashcan_verb: Shared top-level setting (not nested under stack_scrolls). Verb used with the worn trashcan.

UserVars used in this script:

UserVars.stackers: Cached map of each stacker's contents, built by scanning your physical stackers. Persists between runs; cleared automatically by maintenance commands or manually via the reset argument.

Other scripts used by this script:


status-monitor

Watches for high-frequency or spammy game output (e.g. getting stuck repeating a failed action) and alerts you, while optionally showing a small window with the character's current health. Useful for keeping tabs on multiple characters at once.

Script usage: Trust status-monitor, then run it. Requires the ruby-gtk bindings unless run with nowindow. It filters out routine noise (room descriptions, known room players/NPCs, prompts, etc.) and tracks lines it hasn't seen recently, updating a health percentage indicator in the window. If it detects a burst of identical or highly similar lines within a short window, it beeps, optionally sends a canned response, echoes the offending line, notifies your registered Slackbot, and can exit the game session.

Script arguments:

debug: Optional. Turns on debugging messages and logs raw/filtered lines plus the current room player list to a status-monitor-debug file.
nowindow: Optional. Runs without the GTK status window, just the line-filtering/spam-detection loop. Same effect as the status_monitor_no_window setting.

Settings used in this script:

quit_on_status_warning: Boolean. Exits the game session (fput exit) when a spam/repeat alert triggers.
unique_line_threshold: Number of times an identical line must repeat within the recent history buffer to trigger an alert.
line_frequency_threshold: Number of similar (but not identical) lines seen in a short window that triggers an alert.
line_similarity_percentage: How similar (by Levenshtein distance) two lines must be to count toward the frequency threshold.
status_monitor_respond: Boolean. If true, sends a canned response (e.g. "'Hmmm?") when a spam/repeat alert triggers.
status_monitor_no_window: Boolean. If true, runs without the GTK status window, same as the nowindow argument.
slack_username: Slackbot username to register for spam-alert notifications.

UserVars used in this script:

UserVars.npcs: List of known NPC names; lines mentioning them are excluded from being treated as new/unseen messages.
UserVars.players_online: List of players online; lines mentioning them (other than yourself) are excluded from being treated as new/unseen messages.

Other scripts used by this script:


steal

Automates stealing runs from shops/rooms and opportunistic NPCs, tracking your effective Thievery skill against each target's known difficulty to focus on items that teach well, optionally hiding to steal, wearing a dedicated stealing outfit, and binning (or trashing) stolen goods.

Script usage: Without arguments, the script iterates through your stealing_towns, targeting stocked items whose difficulty is appropriate for your current Thievery skill (favoring the best learning experience), plus any ready NPC targets (beggar, minstrel, veteran) if npc_stealing_attempt_count is set above 0. New items encountered are added interactively (a ";send yes/no" or town-number prompt) to base-stealing.yaml along with their room/town, and after each attempt the script narrows that target's tracked difficulty range based on the game's learning message.

Call with an item and its location to steal one specific item instead: ;steal [item] [container], e.g. ;steal necklace in catalog.

Stealing stops automatically once your Thievery experience reaches mindlock, unless steal_past_mindlock is set.

Script arguments:

item: Optional. Name of a specific item to steal.
container: Optional, used with item. Where the item is to be stolen from, e.g. 'in catalog' or 'on counter'.

Settings used in this script:

hometown: Used to determine the thief bin location for binning stolen goods, unless force_bin_town is set.
force_bin_town: Overrides hometown for locating the thief bin.
stealing_towns: List of towns to steal in, and search order when running without arguments.
hide_to_steal: Set to false if you do not wish to hide to steal.
bin_stolen: Set to true for Thieves who wish to bin stolen goods.
stealing_bag: Storage bag for stolen goods if bin_stolen: true.
slow_bin_speed: Set to true to bin items slower. Resolves a type-ahead issue for Genie users.
steal_past_mindlock: Set to true if you wish to continue stealing after Thievery is locked.
dont_steal_list: List items by id# (identified in base-stealing.yaml) to skip when stealing.
stealing_buffs: Legacy hash of buffs (khri/spells) to use before starting a stealing run; superseded by the waggle_sets['steal'] set if defined there.
stealing_high_acceptable_count: Max re-attempts on an item whose difficulty is on the harder half of your 'acceptable' range.
stealing_low_acceptable_count: Max re-attempts on an item whose difficulty is on the easier half of your 'acceptable' range.
npc_stealing_attempt_count: Number of stealing attempts to make on ready NPC targets (minstrel, veteran, beggar). 0 disables NPC stealing.

UserVars used in this script:

UserVars.stealing_timers: Hash of per-target (room or NPC) cooldown timestamps, used to avoid re-attempting a target too soon.
UserVars.thievery_debug: Set to enable debug messaging about target selection and difficulty updates.

Other scripts used by this script: jail-buddy^find^performance


study-art

Walks through art rooms (as defined in base-art.yaml) and studies each piece on display, training Scholarship and/or Appraisal.

Script usage: Run it, optionally passing 'appraisal' or 'scholarship' to choose which skill's experience should stop the run (defaults to scholarship). It walks to each configured art room and studies each listed piece there, pausing briefly after each to let other background scripts (like performance or sanowret) act, until the chosen skill reaches 30 experience or every piece has been studied.

Script arguments:

skill: Optional. Which skill's experience to watch for stopping: appraisal or scholarship. Defaults to scholarship.

Settings used in this script:

performance_pause: Seconds to pause before starting (when not run from crossing-training), giving a previously running performance script time to finish shutting down.

UserVars used in this script:

Other scripts used by this script: performance


su-helmas

Completes the Su Helmas short catacombs maze (the guide empath's non-combat task line): joins the empath, redeeming a contract to join if needed, then responds to each task prompt as it's flagged (search, sit, meditate, climb, dodge, crawl, break/invoke the barrier, smite/touch the seed), stowing awarded loot and rejoining the guide to continue, until the maze is completed.

Script usage: Just run it while an empath wreathed in violet robes is present in the catacombs. If you don't already have a contract redeemed, set redeem_contract to true and keep spare contracts in contract_container so the script can redeem one and rejoin automatically. If a weapon is configured, it's wielded for the duration (needed to break the barrier task).

Script arguments:

Settings used in this script:

suhelmas:catacombs:loot_container: Bag to store your loot.
suhelmas:catacombs:redeem_contract: True will redeem a contract from contract_container (and continue to do so as needed) if you don't currently have one redeemed to join the empath. False only proceeds if you've already redeemed a contract, exiting otherwise.
suhelmas:catacombs:contract_container: Container where your contracts are stored.
suhelmas:catacombs:weapon: Weapon to wield for the tasks. Any melee weapon will do.
suhelmas:
  catacombs:
    loot_container: backpack
    redeem_contract: true
    contract_container: haversack
    weapon: scimitar

UserVars used in this script:

Other scripts used by this script:


summoning

Trains Summoning by repeatedly summoning and breaking a magical weapon, channeling any leftover elemental charge into damage focus. Warrior Mages must have already ALIGNed to an element.

Script usage: Just run it, typically called from crossing-training. It repeatedly summons and breaks a weapon (using 'pathway focus damage' with any remaining charge at circle 4+) until your Summoning experience increases by the configured increment or reaches the shared max threshold, whichever comes first.

Script arguments:

Settings used in this script:

summoning_target_increment: The desired number of mind states to increase Summoning by this run. Respects crossing_training_max_threshold as an upper limit.
crossing_training_max_threshold: Shared upper mind-state ceiling; training stops here even if the target increment hasn't been reached.

UserVars used in this script:

Other scripts used by this script:


t2

An alternative trainer script that runs sub-scripts to train skills based on configurable thresholds, cooldowns, and conditions. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/T2-Tutorial

Script usage: Run the script, optionally with the nodelay argument to skip the startup delay. On each pass it walks your training_list in order, skipping any skill whose experience is already at or above its start threshold, still on cooldown (per exp_timers), or requires moons that aren't currently visible; the first eligible entry has its scripts run (with an optional burgle first, if enabled), then the loop repeats. If nothing is eligible, it sleeps and warns you to check the T2 tutorial. While running, control it via aliases/echo commands: ;e $T2.shutdown (stop cleanly after the current pass), ;e $T2.noshutdown (cancel a pending shutdown), and ;e $T2.reload_settings (reload training_list from your YAML without restarting).

Script arguments:

nodelay: Optional. Bypasses t2_startup_delay.

Settings used in this script:

t2_startup_delay: Seconds to wait (measured from your session's start time) before beginning training.
t2_skip_awaken: If true, skips the 'awaken' command at startup.
t2_avoids: Array of {type:, state:} hashes; issues 'avoid TYPE' when state is false or 'avoid !TYPE' when state is true.
t2_burgle_every_block: If true, runs 'burgle start' before each training block.
t2_before_startup: Array of "script arg1 arg2" strings to run once before training begins.
t2_after_shutdown: Array of "script arg1 arg2" strings to run after a controlled shutdown.
training_list: Array of trainables. Each entry has skill (a name, or array of names requiring all to be under threshold), start (experience threshold to skip below), an optional name for status messages, scripts (array of "script arg1 arg2" strings to run), and an optional moons flag to skip the entry when no moons are visible.
exp_timers: Hash of skill => cooldown seconds; a skill won't be retrained until this long has passed since it was last trained.
t2_no_kill: Script name (or list of names) to spare from being stopped on shutdown; use the keyword ALL to spare every script T2 launched.
cyclic_no_release: Shared top-level setting; cyclic spells listed here are not released when T2 shuts down.
t2_startup_delay: 30
t2_skip_awaken: false
t2_avoids:
  - type: join
    state: on
  - type: hold
    state: on
  - type: drag
    state: on
t2_burgle_every_block: true
t2_before_startup:
  - preparation_script
t2_after_shutdown:
  - cleanup_script
training_list:
  - skill: arcana
    start: 20
    name: Magic Training
    scripts:
      - magic-practice-script
  - skill: hunting
    start: 15
    scripts:
      - hunt-script
exp_timers:
  arcana: 60
  hunting: 120

UserVars used in this script:

UserVars.t2_timers: Hash of skill => last-trained timestamp, persisted between runs to enforce exp_timers cooldowns.

Other scripts used by this script: burgle


task-forage

Completes foraging tasks given by Mags in the Crossing, and the flower peddler in Shard, in order to train Trading.

Script usage: Start the script. Defaults to your hometown; pass "crossing" or "shard" to force tasks in a specific area, or "resume" to pick up a task already in progress (from your journal) instead of canceling it. If using T2 and especially while in Shard, consider setting never_wait: true and using a 30 second T2 timer for Trading (to avoid sitting around on cooldown too often, waiting for the right task type).

Script arguments:

town: Optional. "crossing" or "shard" to force tasks in a specific area. Defaults to your hometown.
resume: Optional. Picks up a task already in progress instead of canceling it.

Settings used in this script:

task_forage_settings:container: Optional. Where to temporarily store gathered task items. Falls back to the top-level forage_container setting, then 'backpack'.
task_forage_settings:task_boosts: true or false. Optional. Whether or not to use BOOST TASK in order to reduce task cooldowns.
task_forage_settings:collect: true or false. Optional. Use COLLECT for large tasks instead of FORAGE (only use if you know you can COLLECT reliably for all tasks).
task_forage_settings:trading_limit: Optional. Target Trading mindstate before the script will exit. Defaults to 30.
task_forage_settings:never_wait: true or false. Optional. Exit as soon as a task cooldown is encountered.
task_forage_settings:wait_in_place: true or false. Optional. If waiting for a cooldown, do it by collecting rocks at the task giver. If false, the script will run outdoorsmanship.lic at your outdoors_room or safe_room instead.
task_forage_settings:debug: true or false. Optional. Show verbose debug messaging.
task_forage_settings:forage_locations: Optional. Array of {item:, rooms:} entries merged into (or overriding) base-forage.yaml. Set rooms: [] for an item to permanently blacklist it.
hometown: Used as the default task town when no town argument is given.
outdoors_room: Room to walk to for running outdoorsmanship.lic while waiting, used when wait_in_place is false. Falls back to safe_room if unset.
safe_room: Fallback room for outdoorsmanship.lic if outdoors_room is unset.
forage_container: Top-level fallback container setting, used if task_forage_settings:container is unset.


Example:

  task_forage_settings:
    container: backpack
    task_boosts: false
    collect: false
    trading_limit: 30
    never_wait: false
    wait_in_place: true
    # Show verbose debug messaging
    debug: false

UserVars used in this script:

task_forage: Tracks wandering task givers' last known locations, and if you have recently failed collecting an item. Ex: task_forage: "item_failures"=>"", "npcs"=> "peddler"=>2567

Other scripts used by this script: find, outdoorsmanship


tarantula

Manages the automated usage of the biomechanical tarantula, a gift handed out for patrons of Hollow Eve 432.

Script usage: Run ;tarantula after adjusting YAML settings as desired. Can be added to startup. The script watches for skills near max-mindstate to sacrifice for their bonus, with different behavior depending on if you're in combat or not.

Script arguments:

Settings used in this script:

tarantula_startup_delay: Number of seconds to wait after first starting before it will eat skills. Useful when tarantula is added to autostarts, so that it doesn't eat skills on first login, before login drain.
tarantula_noun: Change if you've had a tarantula alteration or if you bought the harvester spider at 2020 Corn Maze. Use both the adjective and noun.
tarantula_debug: Set true if you wish to see debug messages.
tarantula_excluded_skills: A list of skills never to sacrifice to the tarantula.
tarantula_skip_alternate: Set true to skip sacrificing an alternate (non-prioritized) skill entirely when none of your prioritized skills are available.
tarantula_no_use_scripts: A list of scripts defined by you, during which the tarantula will not activate.
tarantula: A list of skills, organized by skillset and by whether you want them sacrificed in and/or out of combat as defined by whether combat-trainer or hunting-buddy is running. These are the prioritized choices, however ;tarantula will choose other full skills in that sphere if none of its prioritized skills are available, unless they are listed in tarantula_excluded_skills
tarantula:
  Armor:
    combat:
    - Chain Armor
    - Brigandine
    - Plate Armor
    - Light Armor
    - Defending
  Weapon:
    combat:
    - Melee Mastery
    - Missile Mastery
  Magic:
    combat:
    - Utility
    non_combat:
    - Lunar Magic
    - Warding
    - Augmentation
    - Utility
  Survival:
    combat:
    - Evasion
    - Skinning
    non_combat:
    - Outdoorsmanship
  Lore:
    non_combat:
    - Appraisal
    - Performance
    - Scholarship

An example of exclusions added to a yaml:

tarantula_excluded_skills:
  - Large Edged
  - Brawling
  - Evasion
  - Parry
  - Shield
  - Athletics
  - Crossbow
  - Slings
  - Light Thrown
  - Bow

UserVars used in this script:

tarantula_last_use: The last time the tarantula was sacrificed to.
tarantula_last_skillset: The last sphere sacrificed to, since the tarantula can't be used on the same sphere twice in a row.

Other scripts used by this script:


tendme

Automatic wound tender for self. On start, checks HEALTH for lodged items, parasites, and bleeding wounds and tends them once. With the monitor argument, it stays running afterward, watching for messages indicating a wound needs retending or a new item has lodged, and tends those as they occur.

Script usage: Run ;tendme to tend once and exit, or ;tendme monitor to keep it running in the background. Add train to also rewrap otherwise-fine wound bindings for First Aid experience while you're under 30 experience in that skill.

Script arguments:

train: Optional. If present, unwrap and rebind wounds for optimum First Aid learning (only while monitoring, and only under 30 First Aid experience).
monitor: Optional. Run in background to keep bleeders/lodged wounds tended as they occur.

Settings used in this script:

worn_trashcan: Used to dispose of an item (e.g. a dislodged bolt or arrow) removed from a wound while tending, if it's still in hand.
worn_trashcan_verb: Verb used with the worn trashcan when disposing of a dislodged item.

UserVars used in this script:

Other scripts used by this script:


tendother

Automatic wound tender for another player in your room. On start, looks up their bleeding wounds and tends them, then watches for messages indicating their bandages have failed and retends as needed. Runs indefinitely.

Script usage: Call the script with the target player's name (a partial match against players in the room is accepted). It immediately checks for and binds any open bleeding wounds, then loops, watching for bandage-failure messages for that player and retending whenever one occurs.

Script arguments:

player: Name (or partial name) of the player to tend.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


tessera

Uses the Tessera item periodically (every 6 minutes, 15 seconds by default) to train Trading. Runs in the background and handles safe pausing and unpausing of other running scripts.

Script usage: Just run it. Every 20 seconds it checks whether conditions are right to use the tessera -- not hidden, not invisible, off cooldown, hands free (or already holding the tessera), not in a disallowed room, no disallowed script running, and Trading experience still below the configured threshold -- and if so, retreats, retrieves the tessera from storage, asks it about invest, then stows it and resets the cooldown. If the tessera can't be found at all, the script exits.

Script arguments:

Settings used in this script:

tessera_noun: Item noun. (Default = Tessera).
tessera_retry_interval: Interval in seconds to retry asking the Tessera about invest. (Default = 375).
tessera_startup_delay: Startup delay in seconds for the Tessera script. Purpose is to avoid other startup conflicts. (Default = 15).
tessera_no_use_scripts: List of scripts that, when running, delay or pause use of the Tessera.
tessera_no_use_rooms: List of room titles (or room IDs) to avoid using the Tessera in.
tessera_mindstates: The Trading mindstate threshold below which (or equal to) you will use your tessera. Like a T2 start #, you will only use your tessera if your Trading mindstate is less than this number. (Default=3).

UserVars used in this script:

tessera_last_use: Keeps track of the last time asking the Tessera about invest was attempted. Ex: tessera_last_use: 2022-03-21 22:48:29 -0700.

Other scripts used by this script:


textsubs

A downstream text-substitution engine with an extensive built-in library of default subs (numeric quality ratings appended to appraisal/combat/crafting/performance/mining messages, spell and spellbook Elanthipedia hyperlinks, social and divine outrage level annotations, herb body-part/wound-type hints, various guild-specific unlocks, coin comma-grouping, and more), plus support for adding your own custom substitutions.

Script usage: Just run it, typically at login/autostart. It hooks the downstream game text and rewrites anything matching its accumulated substitution table -- most of which is built in automatically based on your guild and the settings below. You can add your own substitutions at runtime with TextSubs.add('^(\s+)no (puncture|slice|impact|fire|cold|electric) damage','\1no (0/27) \2 damage'), or clear everything (including the built-ins) with TextSubs.clear(). If you also run spellmonitor.lic, start it before textsubs.lic (or textsubs will break buff-watcher's detection of active spells) -- ensure textsubs is last on your autostart list, or fix it in-game with ;k textsubs then ;textsubs.

Script arguments:

Settings used in this script:

private_textsubs: Hash of your own pattern => replacement pairs, applied at startup in addition to the built-in subs.
integrate_shit_list_with_textsubs: Boolean. Tags players listed in your character's shit list file with "(SL)" wherever their name appears.
textsubs_spell_links: Boolean. Hyperlinks guild spell training, magic feats, spellbooks, and known spells (in column-formatted spell lists and your Active Spells window) to their Elanthipedia pages.
herb_textsubs: Boolean. Appends a body-part/wound-type hint to raw herb names.
textsubs_use_plat_grouping: Boolean. Adjusts where thousand-separator commas are inserted in large coin totals when platinum is also shown alongside other coin types.

UserVars used in this script:

Other scripts used by this script:


theurgy

Trains Theurgy by working through a rotating list of devotion rituals (prayer, altar/prayer mat ceremonies, tithing, bathing, bead carving, etc.) to build up devotion, then performing your configured communes (Eluned, Tamsine, Truffenyi, Kertigen) once devotion allows, automatically restocking consumable supplies as needed.

Script usage: Just run it. Recommended -- Eluned (for cheap holy water). On start it prays to your favored god (or Meraud by default), restocks any needed ritual/commune supplies including holy water, then alternates performing available communes and rituals until either your rituals are exhausted, your Theurgy experience reaches theurgy_exp_threshold (if set), or the devotion cooldown blocks further communing. It finishes by rolling up your prayer mat (if used) and issuing a final commune.

Script arguments:

Settings used in this script:

hometown: Used to look up theurgy room/shop data for your town, unless fang_cove_override_town is set.
fang_cove_override_town: Overrides hometown for theurgy purposes.
safe_room: Room used for the "embarrass myself" ritual (invoking golden parchment).
favor_god: Name of the god to pray to at the start of each run. Defaults to Meraud if unset.
theurgy_exp_threshold: Optional. Theurgy experience to stop at. If unset or 0, the script runs until it's out of rituals to perform.
theurgy_supply_container: Container for storing wine, flint, incense, and other ritual supplies.
water_holder: Vessel that you store holy water in.
flint_lighter: Blade for lighting flint.
immortal_aspect: For bead carving/meditation (must be aspect of the god you last got a favor from).
crafting_container: Container used for bead-carving crafting items.
crafting_items_in_container: List of crafting items expected to be in the crafting_container.
engineering_belt: Belt used to hold bead-carving tools, if worn there instead of in your bag.
theurgy_use_prayer_mat: Boolean. Use a prayer mat instead of an altar for applicable rituals.
prayer_mat: Item name of your prayer mat, used when theurgy_use_prayer_mat is true.
prayer_mat_container: Container your prayer mat is stored in. Falls back to theurgy_supply_container if unset.
theurgy_prayer_mat_room: Room in which to use your prayer mat. Either an integer room ID, or a hash with an 'id' key.
theurgy_prayer_mat_room: 1234
communes: Array of commune names you want performed: Eluned, Tamsine, Truffenyi, and/or Kertigen. Each also has its own minimum circle/skill requirement.
theurgy_blacklist: Array of ritual method names (as strings) to never perform.
theurgy_whitelist: Array of ritual method names (as strings) to exclusively perform, excluding all others. Leave empty to allow all non-blacklisted rituals.
tithe: Boolean. Whether to include the tithe ritual (requires an almsbox in your hometown).
theurgy_supply_levels: Hash of item name => {min:, target:} restock thresholds, controlling when and how much of each ritual/commune supply item to buy.
ignored_npcs: Used during the Eluned sirese-seed ritual as an invasion check; the room must contain only ignored NPCs (or none) to proceed.

UserVars used in this script:

Other scripts used by this script: tithe, carve-bead


titlecheck

Checks for new titles since the last time you ran the script.

Script usage: Run the script and provide a set of titles to check (e.g. ;titlecheck moonmage). On the first run for that title set, all titles will be reported as new. Running the script afterwards will report only new titles. Add all to list every title in the set instead of just new ones, and/or sort to sort the results alphabetically.

Script arguments:

title_set: Which set of titles to check. One of: blunt, ranged, brawling, genedged, specedged, thrown, pole, shield, slings, weapons, weaponmaster, performer, primarymagic, magic, money, ownership, survival1, survival2, survival3, lore, criminal, generic, racial, premium, order, religion, novice, practitioner, dilettante, aficionado, adept, expert, professional, authority, genius, savant, master, grandmaster, guru, legend, cleric, trader, warmage, necromancer, empath, ranger, paladin, bard, barbarian, thief, or moonmage.
all: Optional. List all titles in the set, instead of only new ones since the last run.
sort: Optional. Sort the listed titles alphabetically.

Settings used in this script:

UserVars used in this script:

UserVars.titles: Hash of title_set => titles you've previously been reported as having, used to detect new titles on later runs.

Other scripts used by this script:


tome

Uses scholarship tomes (such as those sold at Tomes of Lore) to train scholarship.

Script usage: The script has two modes: active and passive. Active will focus on studying until your scholarship mindstate goal is reached. Passive will run continuously in the background. With passive mode, tome will only get your book and study it when another primary whitelisted script is running (such as attunement/sigilharvest), to maximize scholarship training. You can add more passive-whitelisted scripts in your YAML, but you should only add scripts that will have at least one hand free to hold the book. Your tome must also be listed in your gear: settings so it can't be lost from your hands; the script refuses to run otherwise.

Script arguments:

active: Actively study until your scholarship goal is reached, instead of passively waiting for the appropriate time.
debug: Optional. Verbose messaging for troubleshooting.

Settings used in this script:

gear: Your character's gear list. The tome must be findable here (matching its adjective/name) or the script aborts, to keep it from being lost from your hands.
sanowret_no_use_rooms: Shared top-level setting. List of room titles/IDs to avoid passively studying in.
tome_settings:tome_name: Name of the tome to study. Books with more pages tend to be better for passive training.
tome_settings:second_to_last_page: Excerpt from the second-to-last page. Required for newer books that lack predefined data. Example: "But, she is a great warrior with the fury of a mother".
tome_settings:quit_early: true or false. Optional. Whether to stow the tome before finishing the last page, avoiding a 50% concentration hit.
tome_settings:scholarship_limit: Optional. Target scholarship mindstate to train to before stopping. Defaults to 34. Example: 30.
tome_settings:passive: true or false. If true, runs in the background and trains passively until conditions are met. If false, focuses actively until scholarship goal is reached, then exits. Overridden by the active argument.
tome_settings:passive_scripts: List of scripts that are safe to study while running (require at least one free hand). Example: appraisal, attunement, first-aid, outdoorsmanship, crossing-repair, task-forage.
tome_settings:
  tome_name: kuwinite codex # Books with more pages tend to be better for passive training.
  second_to_last_page: But, she is a great warrior with the fury of a mother # Although some books have this data pre-defined, if you're using a relatively new book you will need to specify an excerpt of text from the second-to-last page.
  # Try to stow the tome before finishing the last page, which comes with a 50% concentration hit and not much scholarship at higher ranks
  quit_early: true
  # Target mindstate to train to
  scholarship_limit: 30
  # If true, the script will remain running in the background until specific conditions are met that allow for training
  # If false, the script will run actively, focusing on studying until you hit your scholarship goal, and exit.
  passive: true
  # A list of scripts that are safe to get a tome out and study while running. Only include scripts where you'll have at least 1 hand free
  passive_scripts:
  - appraisal
  - attunement
  - first-aid
  - outdoorsmanship
  - crossing-repair
  - task-forage

UserVars used in this script:

Other scripts used by this script:


trade

Runs caravan trading routes for the Trading guild: picking up and delivering contracts and tasks, training a configurable set of skills opportunistically along the way, and managing the caravan itself (renting, leading, feeding, stabling).

Script usage: Details on script usage and configuration can also be found at https://github.com/elanthia-online/dr-scripts/wiki/Trader-Tutorials

  • ;trade -- starts the main loop: picks up/delivers contracts, trains configured skills, and manages the caravan indefinitely (or until closeup/duration ends it).
  • ;trade closeup [exit] -- delivers all remaining crates, then returns (or stables) your caravan to avoid fees and stops. Add exit to also exit the game afterward.
  • ;trade duration [minutes] [hunt] [exit] -- runs for the given number of minutes (plus time to close up) before locking down new contracts and closing up. Add hunt to occasionally run a hunt defined in your charactername-caravanhunt.yaml file (see Quillith-caravanhunt.yaml) whenever you stop in your hometown and your Trading exp is high enough. Add exit to also exit the game afterward.
  • ;trade hunt -- same hunting behavior as above, run standalone alongside the normal indefinite loop.
  • ;trade [roomid] -- takes your existing caravan directly to the given room and exits.
  • ;trade outpost [town] -- takes your existing caravan directly to the trade outpost of the named town (Zoluren, Therengia, Ilithi, and Forfedhar only) and exits.

Script arguments:

destination: A room ID. Takes your caravan directly there and exits. Requires an existing caravan.
closeup: Delivers all remaining crates and accepts no new contracts, then returns/stables the caravan and stops.
outpost: Followed by a town name (first word). Takes your caravan directly to that town's trade outpost and exits.
duration: Followed by a number of minutes. Runs for that long (plus closeup time) before locking down new contracts and closing up.
hunt: If your Trading experience is above half, occasionally runs a hunt defined in your charactername-caravanhunt.yaml whenever you stop in your hometown.
exit: Used with closeup or duration. Exits the game after delivering all crates and returning/stabling the caravan.

Settings used in this script:

hometown: Your character's hometown; must be a town within your trading province.
trade_contract_container: Container where you store your contracts.
trade_use_stable: Boolean. Stable the caravan overnight/on closeup instead of returning it.
trade_tasks: Boolean. Whether to pick up and complete Trading Guild tasks alongside your regular contract runs.
caravan_coins_on_hand: Minimum copper to keep on hand for the caravan; the script withdraws more from your hometown bank when it drops below this.
caravan_interior: Boolean. Whether you ride inside the caravan's interior while it's being led, instead of walking beside it.
caravan_recipes: Overrides which crafting recipe(s) to use for the Outfitting/Engineering caravan-training crafts.
caravan_training_skills: Hash of skill => cooldown (seconds) for skills to train opportunistically while running the route. Supported skills: Attunement, Warding, Augmentation, Utility, Appraisal, Forging, Perception, Locksmithing, First Aid, Outfitting, Engineering, Performance, Outdoorsmanship, Athletics.
crafting_container: Container used for Outfitting/Engineering crafting materials.
engineering_belt: Belt used to hold Engineering training tools, if worn there instead of in your bag.
outfitting_belt: Belt used to hold Outfitting training tools, if worn there instead of in your bag.
worn_instrument: Instrument used for Performance skill training. Required if Performance is in caravan_training_skills.
gem_pouch_adjective: Adjective of your gem pouches, used for Appraisal training.
full_pouch_container: Container where full gem pouches are stored during Appraisal training.
spare_gem_pouch_container: Container holding spare empty gem pouches for Appraisal training.
crafting_training_spells: Spells used for Attunement/Warding/Augmentation/Utility training while riding the caravan.
picking_lockbox: Lockbox item used for Locksmithing training.
picking_worn_lockbox: Boolean or container. Whether your picking lockbox is worn rather than carried.
lootables: List of item nouns to loot during hunts.
loot_specials: List of special/valuable items to prioritize looting during hunts.
textbook_type: Textbook item used for First Aid training. Required (along with/instead of compendium_type) if First Aid is in caravan_training_skills.
compendium_type: Compendium item used for First Aid training, as an alternative to textbook_type.
lumber_quantity: Quantity of balsa lumber to keep on hand for Engineering training (capped at 30 by the script).
yarn_quantity: Quantity of wool yarn to keep on hand for Outfitting training when knitting (capped at 301 by the script).
storage_containers: List of containers to open at startup, used for storing crafting materials.
worn_trashcan: Shared setting. Used to dispose of expired/delivered contracts.
worn_trashcan_verb: Shared setting. Verb used with the worn trashcan.

UserVars used in this script:

UserVars.last_seen_caravan: Hash tracking your caravan's last known room, when it was last seen, and whether it's currently stabled.
UserVars.trade_debug: Set to enable verbose debug messaging throughout the script.

Other scripts used by this script: athletics, bescort, buff, first-aid, hunting-buddy, lockbox, performance, safe-room, sell-loot, sew, shape, workorders


train

Train the given attributes. It is intended to be used in The Crossing.

Script usage: Arguments are the name of the attribute to train, with an optional number of trainings appended (defaults to 1):

  • ;train

No arguments: nothing happens (displays the argument list).

  • ;train st

"st" is ambiguous between stamina and strength: nothing happens.

  • ;train sta w2

Trains stamina once and wisdom twice.

The script checks the TDP cost of the requested training and your available TDPs and copper before proceeding, walking to each attribute's training room in turn.

Script arguments:

strength: Number of times to train Strength, e.g. str3 or str.
stamina: Number of times to train Stamina, e.g. sta3 or sta.
reflex: Number of times to train Reflex, e.g. r3 or r.
agility: Number of times to train Agility, e.g. a3 or a.
discipline: Number of times to train Discipline, e.g. d3 or d.
wisdom: Number of times to train Wisdom, e.g. w3 or w.
intelligence: Number of times to train Intelligence, e.g. i3 or i.
charisma: Number of times to train Charisma, e.g. c3 or c.

Settings used in this script:

hometown: Used to look up attribute training room data, unless fang_cove_override_town is set.
fang_cove_override_town: Overrides hometown for looking up attribute training room data.

UserVars used in this script:

Other scripts used by this script:


training-manager

High level script for managing combat and non-combat training. Will alternate training in the crossing and hunting with a focus on either in or out of combat as specified. Sells loot, gathers favors, and repairs equipment along the way.

Script usage: Run it. If training_manager_hunting_priority is true, it prioritizes hunting: it runs crossing-training in the background only until your priority skills need topping off or the town duration timer expires, then switches to hunting. If false, it runs crossing-training to completion (or until the duration timer expires) before hunting. After each hunt it sells loot, visits a safe room, and repairs as configured, then repeats.

Script arguments:

skip: Optional. Skip the first round of harvesting/mining.

Settings used in this script:

hometown: Used to look up town data, including the favor altar location.
training_manager_hunting_priority: Set to true will cause it to focus on combat training at the expense of out of combat.
training_manager_priority_skills: List of combat skills to monitor when it should go hunting again, only used if hunting_priority is set true.
priority_skills_lower_limit: Experience threshold at or below which a priority skill is considered low, triggering a switch to hunting.
training_manager_town_duration: Number of minutes to limit town training to before going hunting. This works when hunting priority is true or false.
mine_while_training: Set to true will cause each loop to start with a mining-buddy run.
lumber_while_training: Set to true will cause each loop to start with a forestry-buddy run.
sell_loot: Set to true to run sell-loot after each hunt.
favor_goal: Number of favors to work towards, if this is set will work on favors while training.
favor_god: Desired immortal to request a favor orb for. Must be set for favor gathering to work properly.
use_favor_altars: Boolean. If true, runs the favor script with your favor_god specified (altar-based flow) instead of the plain favor script.
repair_every: Number of hunts between forced crossing-repair runs. If unset, crossing-repair decides on its own whether to run each time.
skip_repair: True/false setting. Use true to skip all crossing-repair functionality. Default is false.

UserVars used in this script:

UserVars.repair_every_counter: Counts hunts since the last forced repair, compared against repair_every.

Other scripts used by this script: mining-buddy, forestry-buddy, sell-loot, hunting-buddy, crossing-training, safe-room, crossing-repair, favor


transfer-items

Transfers all items from one container to another (or to the trash). It may need to be run multiple times if you have a lot of stuff. If you use an adjective you must type it completely in double quotes, e.g. "hide sack", not "h sack".

Script usage:

  • Transfer all items from <source> to <destination>
 ;transfer-items <source> <destination>
 ;transfer-items backpack haversack
  • Transfer only items that respond to <noun> from <source> to <destination>
 ;transfer-items <source> <destination> <noun>
 ;transfer-items backpack quiver arrows
  • Dispose of all items from <source> instead of moving them, by using "trash" as the destination
 ;transfer-items backpack trash

Script arguments:

source: Source container.
destination: Destination container, or "trash" to dispose of the items instead of moving them.
noun: Optional. If specified, only items with this noun will be transferred.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


truffenyi-commune-quest

Automates the stages of the Truffenyi commune quest: reading the miniature altar's carvings and filling it with matching favor orbs, drinking the resulting murky vial and responding to each vision by praying to the correct aspect (or dropping food items that appear in your hands), finding the hidden forest shrine, and completing the shrine sequence (entering the clearing, following the magpie, catching the weasel, and freeing the ox).

Script usage: Call with a step argument to run that stage of the quest. Start with altar (your hometown must be set to Crossing, since orbs from any of the 39 aspects may be needed), then run vial after receiving the murky vial -- this step takes several hours and you should not be doing anything else during it. Once the vial step finishes, use findshrine to search a list of candidate rooms for the hidden shrine (or shrine if you already know where it is), which then runs the shrine sequence for whichever part of it your current room indicates you're on. Should be run somewhere safe, without other scripts running, since they can interfere.

Script arguments:

step: Which step to run: altar, vial, findshrine, or shrine.

Settings used in this script:

hometown: Must be set to Crossing for the altar step, since orbs from any of the 39 immortal aspects may be needed.

UserVars used in this script:

Other scripts used by this script: favor, safe-room


validate

Checks character YAML profiles for common configuration mistakes: invalid or deprecated settings, mismatched skill names, missing required settings, and more, reporting warnings and errors.

Script usage: Run the script, optionally with verbose to echo each check as it runs. It first checks that all profile files use the .yaml extension (not .yml), that a checkname-setup.yaml exists, and that every checkname-*.yaml file parses as valid YAML. It then notes any curated scripts you've copied into your custom folder (which won't receive updates), and runs a large set of assertions against your checkname-setup.yaml settings -- and again against each file listed in your hunting_file_list setting (other than 'setup', which is already checked) -- reporting a running count of warnings and errors.

Script arguments:

verbose: Optional. Echoes the name of each assertion as it runs, useful for troubleshooting.

Settings used in this script:

hunting_file_list: List of additional settings files (beyond checkname-setup.yaml) to also validate.

UserVars used in this script:

Other scripts used by this script:


vanity-pet

Stows a vanity pet (such as a hog or monkey) into its container, or drops it back on the ground to follow you again. Useful for stowing a pet before burgling or hunting so it isn't lost when a room unloads, then dropping it again afterward. When stowing, waits for a lagging pet to arrive in your room before picking it up.

Script usage: Run with a pet_action of stow or drop, along with the pet's name and container. If pet_action, pet_name, or pet_container are omitted, falls back to the vanity_pet_action, vanity_pet_name, and vanity_pet_container settings respectively. If dropping fails because the room doesn't allow it (e.g. a bank), the pet is re-stowed instead. Commonly hooked into hunting-buddy's or burgle's before/after settings to automatically stow the pet before combat or burgling and drop it again afterward.

Script arguments:

pet_action: Optional. STOW or DROP to either stow your pet in its container or drop it to follow you. Falls back to the vanity_pet_action setting if omitted.
pet_name: Optional. Name of your pet. Falls back to the vanity_pet_name setting if omitted.
pet_container: Optional. Container for your pet. Falls back to the vanity_pet_container setting if omitted.
debug: Optional. Enables debug output.

Settings used in this script:

vanity_pet_action: Default pet_action used when not passed as an argument.
vanity_pet_name: Default pet_name used when not passed as an argument.
vanity_pet_container: Default pet_container used when not passed as an argument.

UserVars used in this script:

pet_debug: If true, enables debug output (equivalent to passing debug).

Other scripts used by this script:


wait

Pauses for a specified number of seconds, then waits for any pending roundtime to clear. Designed for use with the multi script to insert a delay between chained commands.

Script usage:
Example: Runs 'somescript' 20 times with a 100 second interval between each run.

;multi 20,:wait 100,:somescript

Example: Coughs, waits 5 seconds, sneezes, waits 5 seconds, then hiccups.

;multi 1,cough,:wait 5,sneeze,:wait 5,hiccup

Script arguments:

seconds: Optional. Number of seconds to pause before continuing. Defaults to 0 if omitted.

Settings used in this script:

UserVars used in this script:

Other scripts used by this script:


walkingastro

Moon Mage only (the script exits immediately for other classes). Runs as a background script whose aim is to keep your prediction pools filling and the Astrology skill moving while you go about other activities, without having to run the ;astrology script directly.

Script usage: Every 10 seconds, checks whether 205 seconds have passed since the last observation. When they have, and none of the scripts listed in walkingastro_no_use_scripts are running, both hands are empty, and you can see the sky, it retrieves your telescope and centers it on a constellation determined by time of day and your circle (currently, due to a temporary in-game event, both day and night observations resolve to the same four constellations -- Champions, Elide, Issendar, and Kirmhara -- mapped to the survival pool; this will revert to the normal day/Sun, night/Heart-and-beyond-by-circle behavior once that event ends). If a creature closes to combat range while it's working, it retreats before continuing. When an observed pool fills (or partially fills, if use_partial_pools is enabled) and either your Astrology experience is 25 or under or predict_regardless_of_mindstate is enabled, it aligns and predicts against that pool -- rolling bones or using a divination tool instead of a plain prediction if use_tools is enabled -- then stows the telescope.

Finally, this script assumes that you have a telescope (see Astrology for telescope support settings) and that Piercing Gaze is up.

It is highly recommended that you add PG to your list of in/out of combat buff spells.

Script arguments:

debug: Optional. Enables debug output.

Settings used in this script:

telescope_storage: Container your telescope is retrieved from and stowed in.
divination_tool: Divination tool used to predict, if use_tools is enabled and divination_bones_storage is empty.
divination_bones_storage: Container for divination bones; if not empty and use_tools is enabled, bones are rolled instead of using divination_tool.
walkingastro_no_use_scripts: List of script names during which walkingastro will not attempt to observe.
walkingastro.use_tools: If true, predicts using your divination_bones_storage or divination_tool instead of a plain prediction.
walkingastro.use_partial_pools: If true, also predicts against partially-filled pools (not just fully-filled ones), targeting the specific pool tied to the observed constellation.
walkingastro.predict_regardless_of_mindstate: If true, predicts every time a pool fills regardless of your current Astrology experience/mindstate.
walkingastro.startup_delay: Number of seconds to pause before the first observation when the script starts.
walkingastro.analyze_divination_tool: Unless explicitly set to false, analyzes the divination tool after using it.

UserVars used in this script:

walkingastro_debug: If true, enables debug output (equivalent to passing debug).

Other scripts used by this script: buff


wand-watcher

Activates wands automatically based on a cooldown timer.

Script usage: Best added to character autostart. Wands must also be listed in your `gear:` settings, or the script will abort and tell you which ones are missing.

You need to be intelligent about how cooldown / count interact. If you only have 1 and the cooldown is 60 minutes, don't set a value less than 60 minutes.

go2 and burgle are always treated as no_use_scripts regardless of your settings, so you don't need to list them yourself.

Script arguments:

delay: Optional. Overrides wand_watcher_startup_delay from the yaml for this run.
reset: Optional. Clears the stored per-wand timing variables.
once: Optional. Runs one check-and-use pass, then exits, instead of looping.

Settings used in this script:

wands: Hash of wands to manage, keyed by the wand's adjective+noun (must be unique). Each entry supports: activation message (required, the spell activation success message), activate verb (optional, defaults to 'tap'), container (required, where the wand is stored), cooldown (optional, minutes between activation attempts, defaults to 30), count (optional, number of wands you own, defaults to 2), spell (optional, name of the spell the wand casts; omit to disable the buff-duration check), min duration (optional, minimum remaining buff duration in minutes before it will recast, defaults to 1), and luck_item (optional, skips activation while your luck is above 0 and rechecks in 60 seconds, defaults to false). See the example below.
wand_watcher_no_use_scripts: List of script names during which the script will not attempt to grab or activate wands. go2 and burgle are always treated as no_use_scripts regardless of this setting.
wand_watcher_no_use_rooms: List of rooms in which the script will not attempt to grab or activate wands. Entries can be a room number, an exact room title, or a regex matching the title.
wand_watcher_startup_delay: Optional. Seconds to wait on startup before doing anything. Defaults to 10.
wand_watcher_passive_delay: Optional. Seconds to wait between checks for reusing wands. Defaults to 60.


  • Example Settings:
wands:
  # magic wand:                     #Adj + Noun of the wand.  Must be unique  [Mandatory]
  #   activation message: Foo Bar   #Spell activation message                 [Mandatory]
  #   activate verb: tap            #Verb used to activate the wand           [Optional - defaults to 'tap']
  #   container: backpack           #Container where the wand(s) are stored   [Mandatory]
  #   cooldown: 32                  #minutes between activation attempts      [Optional - defaults to 30]
  #   count: 2                      #number of wands you have                 [Optional - defaults to 2]
  #   spell: FooBaz                 # Name of spell wand casts                [Optional - disables buff check if absent]
  #   min duration: 2               # Min buff time before it will recast     [Optional - defaults to 1]
  #   luck_item: false              # Skip activation while luck > 0, recheck in 60s [Optional - defaults to false]

  bloodwood branch:
    activation message: The world around you seems to slow as the spell grips your mind.
    activate verb: tap
    container: rucksack
    cooldown: 32
    count: 2
    spell: Mental Focus
    min duration: 3
  ironwood wand:
    activation message: A glistening net of coiling tendrils interlaces itself across your muscles
    activate verb: rub
    container: haversack
    cooldown: 34
    count: 2
    spell: Heroic Strength

# Don't try to grab any wands while these scripts are running.
wand_watcher_no_use_scripts:
  - burgle
  - go2

# Don't try to grab any wands while in these rooms (generally anti-magic rooms), can use roomnumber, title or regex that matches the title.
wand_watcher_no_use_rooms:
  - 1900                                          # Crossing bank teller - included with regex below but shown for example
  - Knife Clan, Triage                            # Dokt - silenced room
  - !ruby/regexp '/^(?:First )?Provincial Bank,/' # Crossing Bank - mapped, but 1 regex- -> 3 rooms
  - !ruby/regexp '/Carousel (?:Booth|r)$/'        # Vaults - unmapped silenced / nomagic

# Wait n seconds on startup before doing anything [Optional - defaults to 10 s]
wand_watcher_startup_delay: 10  
# Wait n seconds between checks for reusing wands [Optional - defaults to 60 s]
wand_watcher_passive_delay: 60  

UserVars used in this script:

wand_watcher_timers: Persistent storage for next use time for all wands.

Other scripts used by this script:


weave-cloth

Automates weaving cloth at a loom in your hometown (intended for use in The Crossing). Clears any leftover thread off the loom, loads fresh thread, weaves the cloth -- handling loom hiccups like dust and debris, bunching, or unraveling along the way -- and stows the finished cloth once it's done.

Script usage: Run while able to reach a loom in your hometown. It first checks the loom and pulls/drops any thread already loaded on it, then gets and loads two batches of thread (dropping anything left in your hands after each). It then repeatedly runs 'weave loom', switching to 'clean loom', 'turn loom', or 'push loom' as the loom's messages require, until the finished cloth ends up in your hand, at which point it stows the cloth.

Script arguments:

Settings used in this script:

hometown: Used to locate the loom room.

UserVars used in this script:

Other scripts used by this script:


workorders

Completes a work order for the given discipline -- requesting one (or resuming/turning in an existing one), crafting or gathering the needed items via the discipline's own crafting script, bundling and turning them in, and optionally repairing your tools afterward. Supplemental information: https://github.com/elanthia-online/dr-scripts/wiki/Crafting-Setup

Script usage: Run with a discipline to work that craft's work order: it finds the crafting NPC, requests a work order matching your configured difficulty and item-count range, crafts or gathers what's needed (forging, sewing/knitting, shaping, carving, brewing remedies, enchanting, or tinkering, depending on discipline), bundles finished items into the logbook, and turns it in. Pass repair to instead repair your tools for that discipline, turnin to request a work order and immediately turn it in using items already on hand, or continue to resume an in-progress work order already tracked in the discipline's logbook.

Script arguments:

discipline: Type of workorder to do: blacksmithing, weaponsmithing, tailoring, shaping, carving, remedies, artificing, or tinkering.
repair: Optional. Repairs your crafting tools for the given discipline instead of crafting.
turnin: Optional. Requests a work order and immediately turns it in using items already on hand.
continue: Optional. Resumes an in-progress work order tracked in the discipline's logbook instead of requesting a new one.

Settings used in this script:

crafting_container: Bag that materials, tools, and books are stored in.
crafting_items_in_container: List/details of items already kept in your crafting_container, used to avoid unnecessary store/retrieve trips.
hometown: Town used to look up crafting NPCs, rooms, and stock, unless force_crafting_town is set.
force_crafting_town: If set, overrides hometown specifically for workorders.
use_own_ingot_type: If set to a metal type, forges using your own ingots/deeds of that type instead of an NPC-provided ingot.
deed_own_ingot: If true (with use_own_ingot_type set), deeds any excess smelted ingot after forging with your own material.
carving_workorder_material_type: Material type (e.g. bone or stone) used when requesting/crafting carving work orders.
workorder_min_items: Minimum quantity in a work order required to accept it.
workorder_max_items: Maximum quantity in a work order required to accept it. Keep this at 5 or below, or you run the risk of not having enough material, which will cause the script to endlessly loop.
workorder_recipes: Per-discipline list of recipe names to restrict requested work orders to, overriding the default of any recipe flagged as a work order recipe.
workorder_diff: Difficulty of workorder to request; a single value for all disciplines, or a hash keyed by discipline.
workorder_cash_on_hand: Amount of copper to keep on hand while crafting, withdrawn from the bank as needed.
craft_max_mindstate: Skips crafting and exits if your discipline's skill experience is currently above this mindstate.
retain_crafting_materials: If true, keeps leftover materials instead of disposing of them as trash.
workorders_repair: Whether you want to repair your crafting tools after completing workorders or not. For those with tools setup under gear, set to false in your yaml.
workorders_override_store: For remedies, forages and prepares needed herbs instead of buying stock, even when a stock item is configured.
workorders_materials: Hash of material name overrides used across disciplines: metal_type, fabric_type, knit_type, wood_type, bone_type, stone_type, mechanism_ingot_type, and mechanism_press_speed.
workorders_force_heal: If true, runs safe-room (forced) before starting a work order.
default_container: Fallback container used to retrieve items already on hand when using turnin.
workorders_no_repair_tools: List of tool names to skip when repairing.
workorders_repair_own_tools: If true, repairs your tools using your own materials instead of turning them in to an NPC.
forging_tools: List of tools used in forging.
forging_belt: Set up this hash if you have a toolbelt for forging.
forging_belt:name: Unique name of belt.
forging_belt:items: List of items held on the belt.
outfitting_room: Room to walk to for tailoring, sewing, and knitting.
outfitting_tools: List of tools used in tailoring (sewing and knitting).
outfitting_belt: Set up this hash if you have a toolbelt for this craft.
outfitting_belt:name: Unique name of belt.
outfitting_belt:items: List of items held on the belt.
engineering_room: Room to walk to for shaping, carving, and tinkering.
engineering_tools: List of tools used in shaping, carving, and tinkering.
engineering_belt: Set up this hash if you have a toolbelt for this craft.
engineering_belt:name: Unique name of belt.
engineering_belt:items: List of items held on the belt.
alchemy_room: Room to walk to for remedies.
alchemy_tools: List of tools used for remedies.
alchemy_belt: Set up this hash if you have a toolbelt for this craft.
alchemy_belt:name: Unique name of belt.
alchemy_belt:items: List of items held on the belt.
enchanting_room: Room to walk to for artificing.
enchanting_tools: List of tools used for artificing.
enchanting_belt: Set up this hash if you have a toolbelt for this craft.
enchanting_belt:name: Unique name of belt.
enchanting_belt:items: List of items held on the belt.

UserVars used in this script:

Other scripts used by this script: safe-room, smith, shape, sew, carve, remedy, enchant, tinker, smelt