VIP Shop
Version support
Section titled “Version support”| Version | Status |
|---|---|
| v92 | Full |
| 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.
DSL support
Section titled “DSL support”Entity: vipShop
Operations: create, update, delete, upsert, config
File organization: SingleFile — VIPShop.xml
Quick recipes
Section titled “Quick recipes”Create
Section titled “Create”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.5Update
Section titled “Update”spec: version: "1.0" schema: v92
vipShop: update: - shopListId: 1 changes: ableVipLevel: 5 items: - id: 101 templateId: 50001 amount: 2 token: 150Delete
Section titled “Delete”spec: version: "1.0" schema: v92
vipShop: delete: - shopListId: 1Upsert
Section titled “Upsert”spec: version: "1.0" schema: v92
vipShop: upsert: - shopListId: 2 ableVipLevel: 1 items: - id: 201 templateId: 60001 amount: 1 token: 200Config (shop settings)
Section titled “Config (shop settings)”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: 200Properties reference
Section titled “Properties reference”Shop list attributes
Section titled “Shop list attributes”| Attribute | Type | Since | Required | Description |
|---|---|---|---|---|
shopListId | int | v92 | Yes | Unique shop list identifier |
ableVipLevel | int | v92 | No | Minimum VIP level to access this list |
items | list[Item] | v92 | No | Shop item entries. See Item. |
Config attributes
Section titled “Config attributes”| Attribute | Type | Since | Required | Description |
|---|---|---|---|---|
vipShopOpen | bool | v92 | No | Whether the VIP shop is enabled |
resetHour | string | v92 | No | Hour of day when shop stock resets |
maxUserReset | int | v92 | No | Maximum number of user-initiated resets |
userResets | list[UserReset] | v92 | No | Reset pricing tiers. See UserReset. |
Nested elements
Section titled “Nested elements”Defines a purchasable item in a shop list. When items is specified, all existing item elements are replaced (clear-and-replace).
| Attribute | Type | Since | Required | Description |
|---|---|---|---|---|
id | int | v92 | No | Item slot identifier |
templateId | int | v92 | No | Item template ID |
amount | int | v92 | No | Stack size |
token | int | v92 | No | Token cost |
prob | decimal | v92 | No | Probability weight for random selection |
desc | string | v92 | No | Item description |
UserReset
Section titled “UserReset”Defines the token cost for each successive user-initiated shop reset. When userResets is specified, all existing reset entries are replaced.
| Attribute | Type | Since | Required | Description |
|---|---|---|---|---|
count | int | v92 | No | Reset count threshold |
token | int | v92 | No | Token cost for this reset |
XML structure
Section titled “XML structure”VIPShop.xml└── VIPShop @vipShopOpen @resetHour ├── SlotList │ └── List (0..∞) │ @id (key) @ableVipLevel │ └── Item (0..∞) │ @id @templateId @amount @token @prob @desc └── UserResetPrice @maxUserReset └── UserReset (0..∞) @count @tokenCommon pitfalls
Section titled “Common pitfalls”- Config vs entity operations: Use
config:for root-level settings (vipShopOpen,resetHour,maxUserReset,userResets). Usecreate/update/delete/upsertfor shop list entries. - Wrapper elements: In XML, shop lists are inside a
SlotListwrapper element, and user resets are insideUserResetPrice. The DSL flattens these — you don’t reference the wrappers. - Decimal values:
probuses decimal precision. Values like0.5and1.0are written as XML decimal attributes. - Item replacement: Specifying
itemsreplaces all existing item elements for that shop list.