Skip to content

BuyMenuList

BuyMenuList.xml defines shop menu layouts for NPC merchants. Each menu entry represents a shop with tabs (ItemList), where each tab references a BuyList catalog by ID.

VersionStatus
v92Full
v90-
v86-

Entity: buyMenuLists Operations: create, update, delete, upsert Regional variants: _CN, _JP, _KR, _NAEU, _RUS, _THA, _TW


AttributeTypeSinceRequiredDescription
idintv92YesMenu ID (primary key)
stringIdintv92YesString table ID for the menu name
descstringv92YesInternal description
taxGroupintv92NoTax group ID
startPreviewboolv92NoEnable item preview on open
guideStringIdintv92NoString table ID for guide text
itemListslist[ItemList]v92NoShop tabs referencing BuyList catalogs
AttributeTypeSinceRequiredDescription
idintv92YesBuyList catalog ID this tab references
stringedintv92YesString table ID for the tab name

spec:
version: "1.0"
buyMenuLists:
create:
- id: 99001
stringId: 990010
desc: "Custom event shop"
taxGroup: 0
itemLists:
- id: 500
stringed: 990011
- id: 501
stringed: 990012
spec:
version: "1.0"
buyMenuLists:
update:
- id: 100
changes:
taxGroup: 1
startPreview: true
spec:
version: "1.0"
buyMenuLists:
delete:
- 99001
spec:
version: "1.0"
buyMenuLists:
upsert:
- id: 99001
stringId: 990010
desc: "Upserted shop"
itemLists:
- id: 500
stringed: 990011

MenuList (root)
└── Menu (id, stringId, desc, taxGroup?, startPreview?, guideStringId?)
└── ItemList (id, stringed) [max 5]

  • ItemList.id references BuyList.List.id. Each tab in the menu points to a BuyList catalog that defines the actual purchasable items. Cross-entity validation is not enforced at build time.

  • Update replaces ItemLists wholesale. When updating with an itemLists field, all existing ItemList children are cleared and replaced with the new set.

  • Regional variants follow the standard pattern. Use $target in the spec header to target region-specific files (e.g., BuyMenuList_JP.xml).