-
Notifications
You must be signed in to change notification settings - Fork 1
StashScanner
Developer edited this page Jun 11, 2026
·
1 revision
Walks a stash of shulker boxes (stored inside chests / barrels), opens each container, reads every shulker's contents from the item's CONTAINER component (it never places a shulker to read it), classifies each as a kit type, and writes a snapshot to Postgres. This is the scan half of the Order System — it builds the stock database the OrderFiller draws from.
Command: .stashscanner (alias .ss).
Requires the stash database. Enable
database.enabledanddatabase.stashEnabledfirst (Postgres + Redis). See Order System → setup. Without it the module pauses with a message.
-
Region or list mode. Region mode discovers every chest / trapped chest / barrel in a box around an origin (or the bot's feet) within a radius and Y band. List mode re-scans the
storagechests already in the database. - Reads shulkers without placing them. Contents come through 2b2t in the item's data, so each shulker is read straight from the open chest window — the same primitive KitMaker uses. No shulker is ever set on the ground.
-
Classifies by content signature first. A canonical hash of the sorted (item, count) pairs is matched against the kit catalog; an unset/ambiguous shulker is recorded as
unknown/ambiguouswith its exact contents for later relabelling — no re-walk needed. -
Never breaks or places. The whole walk runs with
allowBreak=false/allowPlace=false. A chest it can't reach (or open) is marked unreachable, logged, and skipped — never dug or pillared to. The gaps show up on the scan report. - Dry run by default. Records the snapshot and emphasises the signature dump so you can seed the real catalog from what's actually in the stash.
-
Stand up the data layer and enable it (
database stash on) — see Order System → setup. -
Seed a placeholder catalog (optional):
.ss seedloads the bundled example, or.ss seed kits.jsonloads your own. -
Point it at the stash:
.ss region <x> <y> <z> <radius>(use0 0 0to centre on the bot's feet), tune.ss band <down> <up>. -
Walk it:
.ss scan. WithdryRunon, then.ss dumpto list the unknown signatures, label them into akits.json,.ss seed kits.json, and re-scan — unknowns reclassify in place. - The latest complete scan becomes "current stock" for
.order stockand order reservations.
.stashscanner on/off | scan # scan = enable + start a walk
.ss mode region/list
.ss region <x> <y> <z> <radius> # 0 0 0 = use the bot's feet as the origin
.ss band <down> <up> # Y band around the origin (feetY-down .. feetY+up)
.ss dryrun on/off # default on: classify + dump for catalog seeding
.ss seed [path] # load kits.json into the catalog (default: bundled example)
.ss dump # print unmatched content signatures to label
.ss status
It never withdraws or places anything — fulfilment is the OrderFiller's job.
- What's New — 5.x Beta 🧪
- Installation
- Command Reference
- Movement & Transport
- The ShiftClick fix
- Notifications (ntfy)
- FAQ
Remote control & access 🧪 (5.x beta)
Built-in modules
- AquariusMiner
- AquariusSniffer
- PearlPlus
- VillagerTrader
- PearlDrop
- KitMaker
- Regear
- ElytraPilot
- Enchanter
Stash system
Extending