
Server-side only — vanilla clients see locked trade previews & stock info. No client install needed.
Trade Insight turns every villager into an open book. Before you spend a single emerald, you can see the trades a villager will unlock at higher levels, how much stock every offer has left, and a live countdown to its next restock — all rendered on a plain, unmodded client, because the whole mod lives on the server.
Built for Fabric and NeoForge, Minecraft 1.21.1, Java 21.
✨ Features
📦 Stock & restock info — live
Every real trade gets lore telling you exactly where it stands: Stock: remaining/max, Sold out — awaiting restock when depleted, and a per-villager line Restocks today n/2 with an honest time estimate — "next: ~1m 30s" that counts down live while the trade screen is open, then "available (when working)" once the cooldown ends, or "done today, back tomorrow" when both daily restocks are spent. Stock numbers update in real time as you trade, without reopening the GUI. Wandering traders get stock lore too.
📟 Action-bar summary
Sneak + empty-hand right-click a villager for a one-line readout in the action bar — without opening the trade GUI:
Librarian Lv.3 · Stock 5/7 · Restock 1/2 (next: ~1m 12s)
🔒 Locked trade preview (opt-in — off by default)
Enable lockedTradePreview.enabled and the trade screen also shows greyed-out, locked rows for the trades this villager will offer at higher profession levels (Novice → Master). Each is renamed [Lv.N] <item> with the lore "Unlocks at villager level N". Preview rows are always out of stock — purely informational, they can never be bought. Enchanted-book previews note that the enchantment & price are randomized on unlock; treasure-map trades show a safe placeholder.
🔁 Optional auto-restock
An optional policy lets villagers refill trades automatically: ON_DEPLETE refills a single sold-out trade the moment it empties (the red X clears live, in the open GUI), VANILLA_PLUS performs a full restock. Default OFF = 100% vanilla behavior.
🌐 Per-player language (auto)
All text is generated server-side in the player's own client language — Korean clients see Korean, everyone else sees English (English/Korean included; forceable via config).
⚙ Configuration — config/tradeinsight.json
| Option | Default | What it does |
|---|---|---|
language |
"auto" |
auto / en / ko — auto follows each player's client language |
lockedTradePreview.enabled |
false |
Show locked higher-level preview rows (opt-in) |
lockedTradePreview.maxPerLevel |
8 |
Max preview rows per higher level (1–10) |
stockInfo.enabled |
true |
Per-trade stock lore, live-updated as you trade |
stockInfo.showRestockStatus |
true |
Per-villager restock line with "~Nm Ss" estimate |
stockInfo.liveCountdownSeconds |
1 |
Refresh rate of the live countdown (0 = off) |
actionBarSummary.enabled |
true |
Sneak + empty-hand action-bar summary |
autoRestock.mode |
"OFF" |
OFF / ON_DEPLETE / VANILLA_PLUS |
autoRestock.ignoreDailyLimit |
false |
Bypass the 2-per-day restock cap |
autoRestock.updateDemand |
false |
Apply vanilla price/demand updates on restock |
autoRestock.requireJobSite |
true |
Only auto-restock with a claimed job site |
Command: /tradeinsight reload re-reads the config and clears the preview cache (permission level 2). Corrupt JSON safely falls back to defaults.
❓ FAQ
Does it work with client-side mods?
Yes. Trade Insight only sends normal server data — literal item names and lore — so both vanilla and modded clients work with no install.
Can I buy the preview trades?
No. Preview rows are always out of stock and purely informational.
Sneak-right-clicking a villager doesn't open trading anymore?
Correct — sneak + empty hand shows the action-bar summary instead. Normal right-click trades as usual. Disable via actionBarSummary.enabled.
Is the restock time exact?
It's an honest estimate: vanilla villagers restock up to twice a day, only while working at their job site, after a 2-minute cooldown. The countdown shows the cooldown; the actual refill happens the next time the villager works.

