Skip to content
mc-protocol
Esc
↑↓navigate↵open⌘Jpreview
On this page

Merchant Offers

Play 0x34, server → client.

play · 0x34 · clientbound (server → client)

Sends the trade list for a villager or wandering trader window windowId, including the input and output items, uses, experience, price adjustments, the villager level and experience, and whether the villager can restock. The server sends it after OpenScreen for a merchant. The client shows the trades in the trading screen.

Sent by the server, read by the client. Listen for it with client.on("MerchantOffers", (data) => …) on the receiving side.

Fields

Field Type Notes
windowId ContainerID
trades Array
villagerLevel VarInt
experience VarInt
isRegularVillager Boolean
canRestock Boolean

Send it

await client.sendPacket("MerchantOffers", {
  windowId: /* ContainerID */,
  trades: /* Array */,
  villagerLevel: /* VarInt */,
  experience: /* VarInt */,
  isRegularVillager: /* Boolean */,
  canRestock: /* Boolean */,
});

Field aliases listed under Notes are accepted as alternative keys when writing.

Source: src/Core/Versions/776/Packets/play/clientbound/MerchantOffers.ts

Was this page helpful?