Community listing page, reviews here may not be monitored by the author.
Data Trades
No reviews yet
Allows easy customization of villager trades using datapacks
Includes systems for trading and managing economies.
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Filters
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
Runs entirely on the server. Also works in singleplayer.
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
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.
Examples
Datapacks with examples can be found here.
JSON-Schema
More information about the actual JSON schema and properties can be found here
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.json
following 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 below |
The 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 trades |
In 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 choosen |
Trade
| 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 | 0 |
TradeIngredient
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 | null |
The 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].json
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers