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