Villager Trade Data Format
All trade definition files belong in data/numismatic-overhaul/villager_trades. You can define as many files for a villager profession as you like, although having multiple files per profession is discouraged for the sake of simplicity.
All the trades are collected based on profession, and for each level the villager randomly picks their trades.
Wandering Trader
The Wandering Trader is a special case. Its profession ID is wandering_trader, and it only requires trades for the novice and apprentice levels. Any other trades will not load.
File Format
Each trade definition file needs two elements in the root object:
profession: The profession the following trades are for, without namespace (eg."profession": "farmer")trades: The trades for this profession, one array for each level
Example:
{
"profession": "farmer",
"trades": {
"novice": [
{
"type": ...
...options...
},
{
"type": ...
...options...
}
]
}
}ItemStack format
| Property | Description | Type |
|---|---|---|
id | The item ID | string |
count | The item count | int optional |
tag | An NBT tag | A nested object optional |
Example
{
"id": "minecraft:diamond_pickaxe",
"count": 1
"tag": {
"Damage": 75
}
}
```Trade Types
All trades types have these optional parameters:
| Parameter | Description | Type | Default |
|---|---|---|---|
price_multiplier | The multiplier to apply when a player has gossip | float | 0.05 |
max_uses | The max uses of this trade before restocking | int | 12 |
villager_experience | The experience awarded to the villager when using this trade | int | 5 |
Buy Item
numismatic-overhaul:buy_stackThe Villager buys the given stack for the given price
| Parameter | Description | Type |
|---|---|---|
price | Price in bronze coins | int |
buy | The item to buy | ItemStack |
Example
{
"type": "numismatic-overhaul:buy_item",
"buy": {
"item": "minecraft:brown_wool",
"count": 6
},
"price": 74000
}Sell Item
numismatic-overhaul:sell_stackThe Villager sells the given stack for the given price
| Parameter | Description | Type |
|---|---|---|
price | Price in bronze coins | int |
sell | The item to sell | ItemStack |
Example
{
"type": "numismatic-overhaul:sell_stack",
"sell": {
"item": "minecraft:cookie",
"count": 2
},
"price": 65,
"max_uses": 2
}Process Item
numismatic-overhaul:process_itemSells an item for another item and some money
| Parameter | Description | Type |
|---|---|---|
sell | The item to sell | ItemStack |
buy | The item to process | ItemStack |
price | The price in bronze coins | int |
Example
{
"type": "numismatic-overhaul:process_item",
"sell": {
"item": "minecraft:diamond"
},
"buy": {
"item": "minecraft:emerald"
},
"price": 2000
}Sell Map
numismatic-overhaul:sell_mapSells a map for a specific structure
| Parameter | Description | Type |
|---|---|---|
price | The price in bronze coins | int |
structure | The structure id, you can find these out using /locate | string |
Example
{
"type": "numismatic-overhaul:sell_map",
"structure": "minecraft:endcity",
"price": 5,
"villager_experience": 20
}Sell Item in Dimension
numismatic-overhaul:dimension_sell_stackSells the given stack for the given price, but only if the villager is in the given dimension
| Parameter | Description | Type |
|---|---|---|
price | The price in bronze coins | int |
sell | The item to sell | ItemStack |
dimension | The dimension to sell in | string |
Example
{
"type": "numismatic-overhaul:dimension_sell_stack",
"sell": {
"item": "minecraft:cookie",
"count": 2
},
"price": 65,
"max_uses": 2,
"dimension": "minecraft:the_end"
}Sell Single Enchantment
numismatic-overhaul:sell_single_enchantmentSells a single random enchantment, prices are calculated based on the generated enchantments
| Parameter | Description | Type |
|---|---|---|
price_multiplier | Multiplier for the price | int optional |
Example
{
"type": "numismatic-overhaul:sell_single_enchantment",
"price_multiplier": 0.75
}Sell Enchanted Item
numismatic-overhaul:enchant_itemSells an item enchanted at the given level, prices are calculated based on the generated enchantments
| Parameter | Description | Type | Default |
|---|---|---|---|
level | The level to enchant with, may exceed 30 | int | |
base_price | A base price in bronze coins on which to base calculations | int optional | 200 |
allow_treasure | Whether to allow treasure enchantments | boolean optional | false |
item | The item to enchant | ItemStack optional | minecraft:book |
Example
{
"type": "numismatic-overhaul:enchant_item",
"base_price": 250,
"level": 30,
"allow_treasure": true,
"item": {
"item": "minecraft:diamond_sword"
}
}Sell Dyed Armor
numismatic-overhaul:sell_dyed_armorSells a piece of randomly dyed piece of leather armor
| Parameter | Description | Type |
|---|---|---|
item | The ID of the item to dye | string |
price | The price in bronze coins | int |
Example
{
"type": "numismatic-overhaul:sell_dyed_armor",
"item": "minecraft:leather_boots",
"price": 200730
}Sell Potion Container Item
numismatic-overhaul:sell_potion_containerSells an item that can have a potion effect applied (eg. potions, tipped arrows) with a random potion effect
| Parameter | Description | Type |
|---|---|---|
container_item | The item to apply the potion effect to | ItemStack |
buy_item | The item to buy | ItemStack |
price | The price in bronze coins | int |
Example
{
"type": "numismatic-overhaul:sell_potion_container",
"container_item": {
"item": "minecraft:potion"
},
"buy_item": {
"item": "minecraft:potion",
"tag": {
"Potion": "minecraft:water"
}
},
"price": 76
}