Skip to content

VIP Shop

VersionStatus
v92Full
v90-
v86-

VIPShop.xml defines VIP shop lists with item entries and shop configuration including reset schedules and user reset pricing.

Shop lists are identified by shopListId. Configuration targets the root VIPShop element.


Entity: vipShop Operations: create, update, delete, upsert, config File organization: SingleFile — VIPShop.xml


spec:
version: "1.0"
schema: v92
vipShop:
create:
- shopListId: 1
ableVipLevel: 3
items:
- id: 101
templateId: 50001
amount: 1
token: 100
prob: 1.0
desc: "Rare weapon box"
- id: 102
templateId: 50002
amount: 5
token: 50
prob: 0.5
spec:
version: "1.0"
schema: v92
vipShop:
update:
- shopListId: 1
changes:
ableVipLevel: 5
items:
- id: 101
templateId: 50001
amount: 2
token: 150
spec:
version: "1.0"
schema: v92
vipShop:
delete:
- shopListId: 1
spec:
version: "1.0"
schema: v92
vipShop:
upsert:
- shopListId: 2
ableVipLevel: 1
items:
- id: 201
templateId: 60001
amount: 1
token: 200
spec:
version: "1.0"
schema: v92
vipShop:
config:
vipShopOpen: true
resetHour: "7"
maxUserReset: 3
userResets:
- count: 1
token: 50
- count: 2
token: 100
- count: 3
token: 200

AttributeTypeSinceRequiredDescription
shopListIdintv92YesUnique shop list identifier
ableVipLevelintv92NoMinimum VIP level to access this list
itemslist[Item]v92NoShop item entries. See Item.
AttributeTypeSinceRequiredDescription
vipShopOpenboolv92NoWhether the VIP shop is enabled
resetHourstringv92NoHour of day when shop stock resets
maxUserResetintv92NoMaximum number of user-initiated resets
userResetslist[UserReset]v92NoReset pricing tiers. See UserReset.

Defines a purchasable item in a shop list. When items is specified, all existing item elements are replaced (clear-and-replace).

AttributeTypeSinceRequiredDescription
idintv92NoItem slot identifier
templateIdintv92NoItem template ID
amountintv92NoStack size
tokenintv92NoToken cost
probdecimalv92NoProbability weight for random selection
descstringv92NoItem description

Defines the token cost for each successive user-initiated shop reset. When userResets is specified, all existing reset entries are replaced.

AttributeTypeSinceRequiredDescription
countintv92NoReset count threshold
tokenintv92NoToken cost for this reset

VIPShop.xml
└── VIPShop
@vipShopOpen @resetHour
├── SlotList
│ └── List (0..∞)
│ @id (key) @ableVipLevel
│ └── Item (0..∞)
│ @id @templateId @amount @token @prob @desc
└── UserResetPrice
@maxUserReset
└── UserReset (0..∞)
@count @token

  • Config vs entity operations: Use config: for root-level settings (vipShopOpen, resetHour, maxUserReset, userResets). Use create/update/delete/upsert for shop list entries.
  • Wrapper elements: In XML, shop lists are inside a SlotList wrapper element, and user resets are inside UserResetPrice. The DSL flattens these — you don’t reference the wrappers.
  • Decimal values: prob uses decimal precision. Values like 0.5 and 1.0 are written as XML decimal attributes.
  • Item replacement: Specifying items replaces all existing item elements for that shop list.