Skip to content
kahlen-tech edited this page Oct 3, 2026 · 1 revision

Description

Picks the boxes in your source containers: identifies and disarms traps, identifies and picks locks, loots the box, and dismantles or throws away the empty box. Afterwards it refills your lockpick ring.

It stops once your Locksmithing mindstate reaches 30, unless you turn that off.

Gear marked :hinders_lockpicking: true in your gear list is removed before picking and put back on afterwards. You sit to pick unless you pass stand.

Settings

YAML Settings

Where the boxes are

pick:
  picking_box_sources:
    - backpack
    - haversack
picking_box_source:

Boxes are picked from each container in pick: picking_box_sources. If that isn't set, the older picking_box_source setting is used. With neither set, the script stops. The source= argument overrides both.

Lockpicks

use_lockpick_ring: true
lockpick_container: lockpick ring
lockpick_type: ordinary
skip_lockpick_ring_refill: false
refill_town:
pick:
  balance_lockpick_container: false
use_skeleton_key: false
skeleton_key: skeleton key
Setting Default Purpose
use_lockpick_ring true You wear a lockpick ring. Set to false to take loose lockpicks from lockpick_container instead.
lockpick_container lockpick ring Your lockpick ring, or the container your loose lockpicks are in. With loose lockpicks, the script stops when it runs out.
lockpick_type ordinary Lockpicks to buy when refilling the ring.
skip_lockpick_ring_refill false Don't refill the ring. Otherwise it's refilled at the end once 15 or more lockpicks are missing.
refill_town Town to buy lockpicks in, if your hometown has no locksmith. Falls back to fang_cove_override_town, then hometown.
balance_lockpick_container false Turn the ring to its best lockpick before each box, to spread the wear.
use_skeleton_key false Try your skeleton key on each box first. If it works, the box needs no disarming or picking.
skeleton_key skeleton key Your skeleton key.

Speed

Each trap and lock is identified, and its difficulty (0-16) decides how carefully to work. Anything below the quick threshold is done blind.

pick:
  disarm_quick_threshold: 0
  disarm_normal_threshold: 2
  disarm_careful_threshold: 5
  pick_quick_threshold: 2
  pick_normal_threshold: 4
  pick_careful_threshold: 7
  use_glance:
  assumed_difficulty:
Difficulty Speed
below the quick threshold blind
quick threshold up to normal quick
normal threshold up to careful normal
careful threshold and above careful
Setting Default Purpose
use_glance Glance at the box before identifying. Defaults to on for Thieves of circle 13 or higher; set false to turn it off.
assumed_difficulty Skip identifying and always use this speed (for example quick or careful). This also skips the blacklist and too-hard checks.

Dangerous and difficult boxes

pick:
  disarm_too_hard_threshold: 10
  too_hard_container:
  trap_blacklist:
  blacklist_container:
  trap_greylist:
  max_identify_attempts: 5
  max_disarm_attempts: 5
  disarm_on_failed_identify: false
  failed_identify_container:
Setting Default Purpose
disarm_too_hard_threshold 10 A trap at or above this difficulty is too hard: the box goes to too_hard_container.
too_hard_container Where too-hard boxes go, and boxes it couldn't disarm or pick within max_disarm_attempts.
trap_blacklist Trap types never to disarm; those boxes go to blacklist_container. Trap names are in base-picking.yaml.
blacklist_container Where blacklisted boxes go, for picking by hand later.
trap_greylist Trap types to always disarm carefully, whatever their difficulty.
max_identify_attempts 5 Identify attempts before giving up on a trap or lock.
max_disarm_attempts 5 Disarm attempts, and pick attempts, before giving up on the box.
disarm_on_failed_identify false When a trap or lock can't be identified, work it carefully anyway instead of giving up on the box.
failed_identify_container Where boxes go when identifying fails.
If a box should go to a container that isn't set, or it won't go in, the box is thrown away (or dropped if there's no bin).

Trap components

pick:
  harvest_traps: false
  component_container:

With harvest_traps: true, trap components are harvested after each disarm and put in component_container. Both can also be set at the top level, outside pick:.

Looting

loot_specials:
fill_pouch_with_box:
gem_pouch_adjective:
gem_pouch_noun: pouch
tie_gem_pouches: true
full_pouch_container:
spare_gem_pouch_container:
  • Gems are poured straight into your gem pouch. By default that only happens when you have no loot_specials; set fill_pouch_with_box: true to do it anyway.
  • Each item is then taken out. Coins are kept, items matching a loot_specials entry go to that entry's container, and anything on your loot list (base-items.yaml plus your loot_additions) is stowed.
  • Everything else is thrown away. Add items you want to keep to loot_additions or loot_specials.
  • Gem pouches are tied and swapped as they fill: a pouch is tied when the game says it needs tying, and a full one is swapped for a spare from spare_gem_pouch_container, with the full one going to full_pouch_container. tie_gem_pouches controls tying on the first fill and when swapping.

Empty boxes

pick:
  trash_empty_boxes: false
lockpick_dismantle:
worn_trashcan:
worn_trashcan_verb:

Empty boxes are dismantled, with lockpick_dismantle added to the DISMANTLE command if set. With trash_empty_boxes: true they're thrown away instead, into your worn trashcan if you have one, otherwise a bin in the room.

Buffs

waggle_sets:
  pick:
lockpick_buff_bot:
pick:
  buff_bot_buff: hol

Before each box it casts your pick waggle set, if you have one. If lockpick_buff_bot is in the room, it whispers them buff <buff_bot_buff> (default hol).

Sprung traps

saferoom_health_threshold: 7
pick:
  tend_own_wounds: false

After a sprung trap it waits out any stun. If you're bleeding, poisoned or diseased, or your wounds score above saferoom_health_threshold, it runs ;tendme (with tend_own_wounds: true) and ;safe-room, then walks back to the picking room.

Other settings

Setting Default Purpose
stop_pick_on_mindlock true Stop once Locksmithing reaches mindstate 30. The all argument overrides it.
pick: debug false Verbose debug output.

Argument Settings

Argument Purpose
refill Only refill your lockpick ring.
source=container Pick the boxes in this container (one word, e.g. source=haversack) instead of your configured sources.
all Keep picking past Locksmithing mindlock.
quick / normal / careful Skip identifying and use this speed.
stand Stand while picking instead of sitting.
debug Verbose debug output.

Usage

;pick

;pick source=haversack

;pick all

;pick refill

You can run it automatically in a subsection of T2.

T2

- skill: Locksmithing
  start: 10
  scripts:
  - pick

Clone this wiki locally