Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Description
Refresh Trades: Expanded lets server owners describe additional villager trades in the server config: the selling profession, the villager level the trade unlocks at, the item the villager sells and the item the player pays - all configurable by ID, including modded items and professions.
The mod comes with pre-configured trades added by the author out of the box, with more curated trades continuously added in future updates. Every trade can be customized, retuned, or completely disabled in the server config.
Custom trades are appended to the same trade pools the vanilla game and Refresh Trades use. New villagers receive them on level-up, and rerolling with Refresh Trades treats them exactly like vanilla offers. Invalid config entries are skipped on server start and reported in the server log, so nothing falls back silently.
Features
- Adds custom villager trades through a single server config list.
- Includes pre-configured trades added by the author, with continuous additions in future updates.
- Allows customizing, adjusting prices, or completely disabling any trade via config.
- Supports any registered profession by ID, including modded professions.
- Supports any registered item by ID for both the sold item and the price.
- Allows configuring villager level from 1 to 5, including master-only trades.
- Allows tuning amount, price amount, max uses, price multiplier and villager XP per trade.
- Integrates with Refresh Trades rerolling: custom trades participate in rerolls like vanilla offers.
- Validates every entry on server start and skips invalid ones with a clear log line.
Server Config
Server config refreshtradesexpanded-server.toml, section custom_trades:
enabledenables or disables adding custom trades.tradesis a list of trade definitions, one string per trade.
Trade format (tokens are key=value pairs separated by spaces, order is free):
profession=<id> level=<1..5> item=<id> [count=<1..64>] [price=<id>] [price_count=<1..64>] [max_uses=<1..1024>] [price_multiplier=<0.0..1.0>] [xp=<0..1000>]
professionsets the villager profession ID (required). Example:minecraft:toolsmith.levelsets the villager level the trade unlocks at,5is master (required).itemsets the item the villager sells (required).countsets the amount of the sold item, default1.pricesets the item the player pays, defaultminecraft:emerald.price_countsets the amount of the price item, default1.max_usessets purchases until restock, default12.price_multipliersets how fast demand raises the price, default0.05.xpsets villager XP per trade, default matches vanilla per level (2,5,10,15,30).
Default config comes with curated trades added by the author (with more trades added in upcoming updates):
trades = [
"profession=minecraft:toolsmith level=5 item=minecraft:iron_ingot count=1 price=minecraft:emerald price_count=5",
"profession=minecraft:farmer level=5 item=minecraft:golden_apple count=1 price=minecraft:emerald price_count=15"
]
Every trade can be reconfigured (adjusting counts, prices, levels) or removed from the list to disable it. Setting enabled = false completely turns off adding custom trades.
A "reverse" trade (villager buys from you) is written by swapping the sides:
profession=minecraft:farmer level=1 item=minecraft:emerald count=1 price=minecraft:wheat price_count=20.
Localization
- English (
en_us) - Russian (
ru_ru)


