Built for Dungeon Train — works anywhere. Trade Everything was created as a companion to the Dungeon Train mod, where an endless procedurally-generated train needs an economy to match. But it has no dependency on Dungeon Train — drop it into any modpack or vanilla-plus world and every villager instantly becomes a universal merchant.
Every villager (and wandering trader) gains one extra trade at the top of its trade list: a Trade Anything slot.
Put any item in the world into it, and the villager offers you a fair exchange for goods it actually wants — coal, wheat, paper, iron, emeralds, whatever that villager buys. No more hoarding chests full of junk you can't sell. That stack of cobblestone, that half-broken enchanted pickaxe, that pile of rotten flesh — it all has a price now.
Prices aren't arbitrary. Every item is valued by what it's genuinely worth:
High-value items pay out in emeralds, and truly premium items (enchanted netherite, god-roll gear) pay in emerald blocks.
That's it. No commands, no config required, no crafting anything. It just works the moment the mod is installed.
If you're carrying emerald blocks and buy something priced in emeralds, the mod automatically breaks exactly enough blocks to cover the cost and hands back the change in emeralds — so your block-stack currency spends seamlessly on any villager trade.
Villagers will buy back their own stock at a small margin below what they sell it for, so you can return that armor you didn't need. Discounts (from curing a zombie villager or Hero of the Village) never turn this into an exploit — the buy-back always tracks the live price.
A config file is written on first launch at config/tradeeverything.json. Everything is tunable:
| Setting | What it controls |
|---|---|
rarity_values_sixteenths |
Base value per rarity tier (in 1/16-emerald units) |
item_overrides_sixteenths |
Per-item value overrides (by item id) |
result_multiplier |
Payout rate — the villager's margin (default 0.75) |
max_cost_count / max_result_count |
Trade size caps |
derive_values_from_recipes |
Toggle recipe/smithing-based valuation |
enchantment_value_per_level_sixteenths |
How much each enchantment level is worth |
allow_undervalued_trades |
Whether near-worthless items can still be sold |
enable_wandering_trader |
Give wandering traders the slot too |
Values are in sixteenths of an emerald: 16 = one emerald, 1 = one-sixteenth (so 16 of that item buys one emerald's worth).
Trade Everything exposes a small Java API (games.brennan.tradeeverything.api.TradeEverythingApi) so other mods can plug into the economy without a Trade Everything update:
registerValueProvider — supply custom values for your own items (Dungeon Train uses this to price its narrative books).setItemOverride — override any item's value at runtime.registerBuyItemSelector — control what a given villager pays out.getValueSixteenths / config() / reload() — read and refresh the current valuation.PolyForm Shield 1.0.0 — see the licence.
Source & issues: github.com/bh679/tradeeverything-mc