Command Palette
Search for a command to run...
PRICING SYSTEM#
The pricing configuration (config/pricing.lua) provides a comprehensive system for clothing costs with category prices, rarity multipliers, sales, and bundles.
Enable/Disable Pricing#
config/pricing.luaConfig.Pricing = { enabled = true, everythingFree = false, globalMultiplier = 1.0, currency = "$" }
| Option | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Enable the pricing system |
everythingFree | boolean | false | Make all items free (testing mode) |
globalMultiplier | number | 1.0 | Multiply all prices by this value |
currency | string | "$" | Currency symbol displayed in UI |
Set everythingFree = true during development to test without money requirements.
Category Base Prices#
Set the base price for each clothing category:
config/pricing.luaConfig.Pricing.categoryPrices = { -- Components face_skin = 0, mask = 50, hair = 100, arms = 0, pants = 120, bag = 80, shoes = 100, accessory = 75, shirt = 90, vest = 110, decals = 50, torso = 150, -- Props hat = 60, glass = 80, ear = 50, watch = 100, bracelet = 75, -- Appearance eyebrows = 20, beard = 30, chesthair = 10, makeup = 50, lipstick = 40, blush = 30, -- Tattoos(per tattoo) tattoos = 500 }
| Category | Default Price | Type |
|---|---|---|
| face_skin | $0 | Component |
| mask | $50 | Component |
| hair | $100 | Component |
| torso | $150 | Component |
| pants | $120 | Component |
| shoes | $100 | Component |
| hat | $60 | Prop |
| glass | $80 | Prop |
| watch | $100 | Prop |
| tattoos | $500 | Per tattoo |
Rarity Multipliers#
Adjust prices based on item rarity/source:
config/pricing.luaConfig.Pricing.rarityMultipliers = { base = 0.5, -- Base game items(50% of category price) dlc = 1.0, -- DLC items(100% of category price) addon = 1.5, -- Addon items(150% of category price) premium = 3.0 -- Premium items(300% of category price) }
| Rarity | Multiplier | Example (Base $100) |
|---|---|---|
base | 0.5x | $50 |
dlc | 1.0x | $100 |
addon | 1.5x | $150 |
premium | 3.0x | $300 |
Use rarity multipliers to make DLC and addon clothing more valuable than base game items.
Collection-Specific Pricing#
Override prices for specific clothing collections:
config/pricing.luaConfig.Pricing.collectionPrices = { ["mpheist4"] = { multiplier = 2.0, -- Cayo Perico items cost 2x categories = { torso = 300, -- Override torso price for this collection pants = 250 } }, ["mpsum2"] = { multiplier = 1.5 -- Summer update items cost 1.5x } }
| Property | Type | Description |
|---|---|---|
multiplier | number | Multiply all items in collection |
categories | table | Override specific category prices |
Shop Type Multipliers#
Different shop types can have different price scales:
config/pricing.luaConfig.Pricing.shopMultipliers = { clothes = 1.0, -- Standard clothing stores barber = 0.8, -- Barber shops(20% discount) tattoos = 1.2, -- Tattoo parlors(20% markup) admin = 0.0, -- Admin menu(free) newchar = 0.0, -- New character(free) family_edit = 2.0 -- Plastic surgery(expensive) }
| Shop Type | Multiplier | Effect |
|---|---|---|
clothes | 1.0x | Normal prices |
barber | 0.8x | 20% discount |
tattoos | 1.2x | 20% markup |
admin | 0.0x | Free |
newchar | 0.0x | Free |
family_edit | 2.0x | Double price |
Texture Pricing#
Charge additional fees for texture variants:
config/pricing.luaConfig.Pricing.texturePricing = { enabled = true, baseCost = 10, -- Base cost per texture change perTextureCost = 5, -- Additional cost per texture ID maxTextureCost = 100 -- Cap on texture costs }
| Option | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Enable texture pricing |
baseCost | number | 10 | Flat fee for any texture change |
perTextureCost | number | 5 | Cost multiplied by texture ID |
maxTextureCost | number | 100 | Maximum texture cost cap |
Formula: min(baseCost + (textureId * perTextureCost), maxTextureCost)
Advanced Pricing Rules#
Create pattern-based pricing rules:
config/pricing.luaConfig.Pricing.advancedRules = { { name = "Premium Masks", condition = function(item) return item.category == "mask" and item.drawableId > 100 end, multiplier = 2.5 }, { name = "Rare Hats", condition = function(item) return item.category == "hat" and item.collection == "mpheist3" end, flatPrice = 500 -- Override with flat price } }
| Property | Type | Description |
|---|---|---|
name | string | Rule identifier |
condition | function | Function returning true/false |
multiplier | number | Apply multiplier if condition met |
flatPrice | number | Override with fixed price |
Scheduled Sales#
Create time-based discount events:
config/pricing.luaConfig.Pricing.sales = { { name = "Weekend Sale", startDay = 5, -- Friday(1=Monday) endDay = 7, -- Sunday discount = 0.25, -- 25% off categories = { "torso", "pants", "shoes" } }, { name = "Happy Hour", startHour = 18, -- 6 PM endHour = 20, -- 8 PM discount = 0.15, -- 15% off categories = nil -- All categories } }
| Property | Type | Description |
|---|---|---|
name | string | Sale name (shown in UI) |
startDay / endDay | number | Day of week (1-7) |
startHour / endHour | number | Hour (0-23) |
discount | number | Discount percentage (0.0-1.0) |
categories | table/nil | Affected categories (nil = all) |
Bundle Discounts#
Create multi-item discount packages:
config/pricing.luaConfig.Pricing.bundles = { { name = "Full Outfit", items = { "torso", "pants", "shoes" }, discount = 0.20 -- 20% off when buying all three }, { name = "Accessory Pack", items = { "hat", "glass", "watch", "bracelet" }, discount = 0.30 -- 30% off accessory bundle } }
| Property | Type | Description |
|---|---|---|
name | string | Bundle name |
items | table | Required categories |
discount | number | Discount when all items purchased |
Bundle discounts are applied automatically when players purchase all items in a bundle during the same session.
Price Calculation Order#
Final price is calculated in this order:
- Base Category Price
- × Rarity Multiplier
- × Collection Multiplier (if applicable)
- × Shop Type Multiplier
- + Texture Cost (if enabled)
- × Global Multiplier
- - Sale Discount (if active)
- - Bundle Discount (if applicable)
Example Configuration#
Complete pricing setup example:
config/pricing.luaConfig.Pricing = { enabled = true, everythingFree = false, globalMultiplier = 1.0, currency = "$", categoryPrices = { torso = 150, pants = 120, shoes = 100, hair = 80, tattoos = 500 }, rarityMultipliers = { base = 0.5, dlc = 1.0, addon = 1.5, premium = 3.0 }, shopMultipliers = { clothes = 1.0, barber = 0.8, newchar = 0.0 } }