Reviewed October 6, 2026. This page covers the root, registered subcommands and documented internal actions.
Registration permissions
| Registration | Handler | Required status (local DB, Oct 6) | Implementation |
|---|---|---|---|
/buy_from_merchant |
87 | 0 | Implemented |
Buy an item from an active merchant or display its buy window.
Implementation: Implemented.
Syntax
/buy_from_merchant [item_id quantity]
Arguments
Position is zero-based in sep, after a registered database subcommand has been removed. Internal action tokens remain at position 0. Angle brackets are required; square brackets are optional. Alternative forms may change field meanings.
| Position | Argument | Accepted value / type | Meaning |
|---|---|---|---|
| 0 | item_id |
integer | Both numeric arguments are required for a purchase. |
| 1 | quantity |
integer | Number of items to buy. |
Behavior and restrictions
The active handler performs the operation described above after the registration permission check.
Current argument/client/target checks (exact source excerpts; branch-dependent):
if(sep && sep->arg[1][0] && sep->IsNumber(0) && sep->IsNumber(1)){
Permissions
Local database snapshot, October 6, 2026: /buy_from_merchant requires status 0 (handler 87). Other worlds may configure different values.
The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.
Examples
The syntax forms above are the source-based invocation examples. Replace identifiers with values valid for your world; client callback fields are supplied by the game client.
Source evidence
Dispatch: COMMAND_MERCHANT_BUY (handler 87).
WorldServer/Commands/Commands.cpp:4616—COMMAND_MERCHANT_BUY.WorldServer/Commands/Commands.cpp:12787—Command_SendMerchantWindow.
Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.
Original upstream Markdown · Archived original. The original text is historical evidence; the corrected contract above takes precedence.