Villager Trades

Quick rating

Community listing page, reviews here may not be monitored by the author.

Villager Trades

By Luc1fer1oOwner

No reviews yet

Datapack-driven NeoForge mod for replacing villager profession and wandering trader trades with custom JSON-defined trades.

Mod Loaders
Minecraft

About

Description

Villager Trades

Villager Trades is a lightweight NeoForge mod for Minecraft 1.21.1 that lets modpack makers and server owners define villager trades through datapacks.

Instead of hardcoding trade changes in Java or editing the mod itself, trades are controlled with JSON files. Each villager profession has its own file, and wandering trader trades are handled separately.

Features

  • Add custom trades through datapacks
  • Configure trades per villager profession
  • Configure wandering trader trades
  • Replace vanilla trades only when a matching datapack file exists
  • Leave vanilla trades unchanged when no datapack file is present
  • Enable or disable the mod's trade functionality through a simple config option
  • Works on both dedicated servers and singleplayer worlds

How It Works

Datapack trade files are placed under:

data/villagertrades/trades/

Supported profession files:

  • farmer.json
  • fisherman.json
  • shepherd.json
  • fletcher.json
  • cleric.json
  • weaponsmith.json
  • armorer.json
  • toolsmith.json
  • librarian.json
  • cartographer.json
  • leatherworker.json
  • butcher.json
  • mason.json
  • nitwit.json
  • wandering.json

If a valid profession file exists, that profession's vanilla trades are removed and replaced with the trades from the JSON file.

If no file exists for a profession, that profession keeps its vanilla trades.

Wandering Trader

Wandering trader trades are configured with:

wandering.json

Entries can use:

  • "pool": "generic"
  • "pool": "rare"

If no pool is specified, the trade is added to the generic pool.

When wandering.json exists, vanilla wandering trader trades are replaced by the JSON-defined trades.

Config

The mod generates a common config file:

config/villagertrades-common.toml

The config contains:

enabled = true

When set to false, the mod does not change villager or wandering trader trades.

Example Trade

{ "trades": [ { "level": 1, "buy": { "item": "minecraft:emerald", "count": 1 }, "sell": { "item": "minecraft:diamond", "count": 1 }, "max_uses": 16, "xp": 2, "price_multiplier": 0.05 } ] }

Notes

  • Villager trades use levels from 1 to 5
  • Minecraft datapack resource paths must be lowercase
  • Trade files can contain either a JSON array or an object with a trades array
  • This mod is intended for datapack-driven customization, modpacks, and server-side trade balancing