/brokerprice¶
Script-provided
Registered by brokerprice. Start it with /lua run brokerprice.
Syntax¶
/brokerprice scan
/brokerprice set <platinum>
/brokerprice catalog [minPlat]
/brokerprice tag [minPlat] [bank]
Description¶
Resident broker toolkit. scan searches the market for each of your unlocked
consignments and undercuts the lowest competitor; set stamps a flat platinum
price onto every unlisted consignment (both need the broker window open).
catalog crawls every page of the broker into a local price cache, and tag
reports which of your carried items are worth selling against that cache.
Ships armed
COMMIT is a constant at the top of brokerprice.lua, set to true as
shipped — there is no in-game toggle. Both scan and set will send
real vendor_set_price writes the first time you run them. Edit the
script and set COMMIT = false first if you want a dry run (both
subcommands still search/log the full plan, they just don't send
anything).
Subcommands¶
| Subcommand | What |
|---|---|
scan |
Search the broker for each consignment, undercut the lowest competitor's buyer price by UNDERCUT (10% as shipped), and reprice. Skips locked items, items already lowest, and items nobody else lists. |
set <platinum> |
Set every unlisted, unlocked consignment to <platinum>p flat. Leaves already-listed items untouched. |
catalog [minPlat] |
Crawl every page of the broker and cache the lowest / mean / highest price per item to brokerprice.catalog.json. Optional minPlat scopes the crawl to items priced at least that many platinum (default: everything). Needs the broker window open. |
tag [minPlat] [bank] |
Read-only report: cross-reference your inventory against the catalog and list items worth at least minPlat platinum (default 1p). Does not need the broker open. Scans bags only unless you add bank. Writes nothing — use /autoloot autobroker to actually tag. |
A command is refused with busy -- a job is already running or queued if a
scan or set is still in flight; the handler only queues work, the resident
loop (its own coroutine, so it can eq2.delay) does the actual searching.
A launch argument still works as a one-shot: /lua run brokerprice set 10000
queues that job immediately after the script starts and stays resident
afterward — you don't need to type the /brokerprice command separately.
How scan pricing works¶
For each consignment, scan reads the Buy-tab search results, splits rows
into your own listing (matched by seller name) and everyone else's, and
targets a price that lands your buyer-facing price UNDERCUT below the
lowest competitor's buyer price — converting back through the broker
commission (derived live from your own listing when possible, otherwise a
20% fallback), rounded up to the nearest gold. If you're already lowest, or
nobody else lists the item, it's skipped. Searches are paced with a cooldown
between items to avoid the broker silently returning empty results under
rate limiting.
Building a price catalog¶
catalog runs one broad broker search (blank item filter) and walks the whole
result set — roughly 8,400 pages for a full economy — aggregating a per-item
record keyed by display name:
lo/hi— lowest and highest listed price seen (copper)avg— mean price. Skewed by outliers (a Krono listed at 76,000,000p wrecks the mean), so price decisions uselo, notavg.n— number of listings observed;level— item levelcheap— the cheapest few{price, seller}samplesid— reserved0placeholder; the broker's search rows don't expose a stable item id yet (a pending RE task will backfill it)
It pages at the broker's native size of 8 — the window's next-page button
re-searches at 8 regardless of the PAGESIZE we ask for, so a larger initial
page just desyncs the "Page A of B" counter — checkpoints to disk periodically,
and posts an ETA to the chat window every ~2.5 minutes. An interrupted crawl
leaves a valid partial catalog on disk. Output: brokerprice.catalog.json, next
to the script. A full crawl takes ~90 minutes; catalog 1 (only items ≥ 1p) is
far smaller if you just want the sellable set.
Checking what's worth selling¶
tag [minPlat] [bank] loads the catalog and your live inventory and prints the
carried items whose lowest market price clears minPlat platinum (default 1p),
with a match summary (how many matched, how many aren't listed on the broker at
all). It scans bags only by default; add bank to include bank items (they
appear only when you're at a banker, and /autoloot putbroker moves from bags).
This command is read-only — to actually apply Broker tags, use
/autoloot autobroker.
Logging¶
Every run appends to brokerprice.log next to the script (in the Lua
scripts directory), in addition to printing to the game chat window — useful
for reviewing a scan's full plan after the fact.
Examples¶
/lua run brokerprice
/brokerprice catalog # full price crawl (~90 min)
/brokerprice tag # which carried items are worth >= 1p
/brokerprice scan
/brokerprice set 10000
/lua stop brokerprice
See also¶
lib.loot.broker— the consignment data model andvendor_set_price/ search write path behindscan/set.lib.loot.brokercat— the price-catalog reader shared bytagand/autoloot autobroker./autoloot—autobrokerturns catalog prices into Broker tags (upgrading Sell→Broker);putbrokermoves them into the box.