Data Trader

Quick rating

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

Data Trader

By MelanXOwner

No reviews yet

A mod which adds a new trader to the game.

Mod Loaders
Minecraft

About

Description

Data Trader

A mod which adds a new trader to the game. This trader can be modified with a datapack. This is being used to set the trades the trader will use. This is mainly for modpacks and not to be used by the normal end user who just wants to add a few mods together and play it. It's meant to be customized! More information about how to use it in the wiki/readme on github

Porting information for 26.1 update #StandWithUkraine

Data Trader

A mod which adds a new trader to the game.

Defining the trades

File structure

The trader can receive an ID for a trader offers "recipe". This is a list of single trader offers. An example file could look like this:

1.20.1
{
  "Offers": [
    {
      "buy": {
        "tag": "forge:gems/diamond",
        "count": 3
      },
      "buyB": {
        "item": "minecraft:wooden_pickaxe"
      },
      "sell": {
        "item": "minecraft:diamond_pickaxe",
        "nbt": "{Damage:0,Enchantments:[{id:\"minecraft:efficiency\",lvl:2},{id:\"minecraft:unbreaking\", lvl:10}]}"
      },
      "rewardExp": false,
      "xp": 0
    }
  ]
}
1.21.1
{
  "Offers": [
    {
      "buy": {
        "count": 1,
        "items": {
          "item": "minecraft:wooden_pickaxe"
        }
      },
      "buyB": {
        "count": 3,
        "items": {
          "tag": "c:gems/diamond"
        }
      },
      "sell": {
        "components": {
          "minecraft:enchantments": {
            "levels": {
              "minecraft:efficiency": 2,
              "minecraft:unbreaking": 10
            }
          }
        },
        "count": 1,
        "id": "minecraft:diamond_pickaxe"
      }
    }
  ]
}

This example includes only one merchant offer. The trader will sell the item in sell.

The player needs to provide the item in buy and buyB to receive the item. maxUses is the amount of times the player can use this trade before the trader needs to restock.

If rewardExp is true, the player will receive xp points for each trade, amount defined in xp.


The following values are required:
  • buy
  • sell

The default values are:

Name Default value
buyB Air
rewardExp false
xp 0

Where to put it in?

You use a data pack to provide these files. These are located at <modid>/trader_offers/. An example can be found here.

How to use?

You spawn the trader using the /summon command, or by using the spawn egg. After this, you use the command /datatrader setOffer @e <modid>:<path> to set the recipe. This can also be done by datapacks. For a normal trader, I recommend setting NoAI to true.

You can also summon a trader with a specific trading table by using the command /datatrader summon ~ ~ ~ <offer_id> <NoAI>

Setting custom skin overlay

Just put a texture to <modid>:textures/entity/trader/<offer_id path>.png. This texture should be something like the profession overlay texture, e.g. minecraft:textures/entity/villager/profession/cleric.png. You are allowed to put this mod in any modpack you like.