← All articles

Minecraft Villager Trade Guide

A custom villager can turn a simple exchange into a story shop: passes, quest items, unique weapons, keys, documents, and rewards without mods.

Open builder

Why custom villagers matter on a story server

A custom villager is not just a cheaper shop GUI. It is an in-world delivery system. The player walks up to a person, not a menu, and the exchange can carry tone: a blacksmith selling weapons, an archivist trading clues, a customs officer checking papers, or a faction merchant taking rare tokens instead of emeralds.

That is why this builder matters. A summon command that defines appearance, behavior, and trade payload all at once becomes painful very fast if you try to type it by hand.

What the tool does

The builder creates a long /summon minecraft:villager command. The command defines the villager's appearance and behavior, then adds an Offers block with a list of Recipes.

Main structure

Every trade has at least two item stacks: buy and sell. If the price uses two items, the command also includes buyB.

Offers:{
  Recipes:[
    {
      buy:{id:"minecraft:emerald",count:8},
      sell:{id:"minecraft:paper",count:1},
      maxUses:999999
    }
  ]
}

Once you read it this way, the builder becomes much less mysterious. It is really arranging three layers: villager identity, trade economics, and item syntax.

Three version modes are there for a reason

The builder shows three version choices because the item syntax changed twice, not once. Minecraft 1.20.5 moved item data to Data Components, and Minecraft 1.21.4 refined the modern format again for fields such as custom_model_data.

So the three choices are not cosmetic. They decide how the buy, buyB, and sell stacks are serialized inside the summon command. The command block helper mirrors the same version split mostly for clarity and consistency, even though the plain /give command for a command block changes much less than the villager trade payload itself.

{id:"minecraft:paper",count:1,components:{"minecraft:custom_model_data":{floats:[12f]}}}
{id:"minecraft:paper",count:1,components:{"minecraft:custom_model_data":12}}
{id:"minecraft:paper",Count:1b,tag:{CustomModelData:12}}

Villager fields

Trade fields

How to use it on a live server

  1. Choose the syntax mode that matches the server version.
  2. Lock the villager identity first: profession, biome, level, and whether the NPC should move.
  3. Build one trade completely before cloning the pattern into multiple rows.
  4. Test the generated summon command once in-game before giving it to staff or hiding it inside data files.
  5. If the command grows beyond chat limits, move straight to a command block.

Using it on a server

Copy the generated command into a command block or an operator console.

Important: if the command is longer than 256 characters, use a command block. Minecraft chat can cut off longer summon commands.

Practical ideas

Common mistakes

FAQ

Do I need to know summon syntax to use this tool?

No. It helps to recognize the structure, but the builder exists so you do not have to manually assemble every bracket.

Can a villager sell custom-looking items?

Yes. That is one of the most useful combinations: a normal item stack mechanically, but a custom-looking reward visually through the pack.

Why not just use a plugin shop?

Because villagers keep the exchange inside the world and work well for scenes where the seller is part of the fiction.

When should I use buyB?

When the price needs a second ingredient: a gem, a pass, a token, or a story item in addition to the main currency.

What is the safest testing strategy?

Spawn the villager alone with one trade first, buy the item once, and only then scale the same pattern into a larger NPC shop.