Data Trades
ModAllows easy customization of villager trades using datapacks
Type
Mod
Modrinth Downloads
13,922
Modrinth ID
nm1MuVrD
Last Updated
Jul 4, 2026
Description
Data Trades
This mod adds the ability for players, serverowners or modpack creators to overwrite villager trades using datapacks. The amount of trades per level and the actual items traded can be customized using json files. A command for development purposes called /villagers refresh will manually trigger a re-asign of trades to all loaded villagers.
Folder Structure
Using a datapack, the trades of a specific villager profession can be overwritten by creating a JSON file following this pattern:
data/[namespace]/villager/professions/[path].json[namespace] and [path] should be overwritten by the specific villager professions ID. For example, to create trades for the minecraft:fletcher profession, a file under data/minecraft/villager/professions/fletcher.json should be created. It's content should follow the Profession Schema
Similar, the wandering trader can be overwritten by adding a file at
data/minecraft/villager/traders/wandering.jsonfollowing the Trader Schema
Examples
Datapacks with examples can be found here.
JSON Schema
The JSON file should contain an object with these properties:
Profession
Property Type Default Description levels map<int,TradeLevel> {} see belowThe levels object takes the form of a map with numeric keys and object values. The keys represent the actual villagers level with 1 being Novice until 5 being Master.
Trader
Property Type Default Description generic TradeLevel null generic trades rare TradeLevel null rare tradesIn vanilla minecraft, each wandering trader chooses 5 generic and 1 rare trades once it spawns. Both the trades themselves and their count can be overwritten using the same format as the one used for a villager's level.
TradeLevel
Property Type Default Description take NumberProvider null amount of trades added by this level trades (Trade | string)[] [] list of trades from which the taken ones are randomly choosenTrade
Property Type Default Description disabled boolean false disabled trades will be ignored sells TradeIngredient [] item sold to the player wants TradeIngredient[] [] maximum of two items the player has to pay uses int 0 maxUses int 10 xp int 1 priceMultiplier float 2.0 demand int 0TradeIngredient
Extension of the vanilla Ingredient with a few extra properties. They can take the form of an item or tag and specify all properties of the vanilla Ingredient JSON. Since Villager trades are ItemStack based that does not mean that a player can pay a #minecraft:stone_tool_materials with any stone type, but only the one that is randomly selected from the tag each time the trade is used.
Property Type Default functions LootFunction[] [] count int nullThe levels object takes the form of a map with numeric keys and object values. The keys represent the actual villagers level with 1 being Novice until 5 being Master.
Advanced Usage
Instead of a Trade object, the TradeLevel trades property can also contain string IDs referencing an external trade. These trades can be saved under the path below to organize & reuse them.
data/[namespace]/villager/trades/[path].jsonCompatibility
Mod Loaders
Game Versions
Similar Mods
Enchanted Charms
Adds four charms that can be enchanted to give different abilities when equipped.
Pam's Temperate Plants
This mod adds in sixteen new plants that spawn in Forge Biome Dictionary biomes marked plains, forest, mountain, and hil...
FWS & TAW Tractor Beam Fix
CWSM Client-side addon that fixes custom tractor beam rotation not applying correctly (Made for the FWS and TAW resourc...
OME Tweaks
This mod aims to add a bunch of configurable QoL tweaks to other mods
Botanical Machinery Extra Reforked
New and improved machines from the Botanical Machinery mod. Also new sparks and a mechanical orechid.
Armor Indicator
A configurable armor indicator mod that renders onto your screen.