Skip to main content

Pricing Configuration

The pricing system controls all payment-related behavior inside XDEV Appearance.

Pricing configuration is located inside:

shared/config.lua

Pricing Structure

Main pricing configuration:

Config.System.Price = {}

This section controls:

  • clothing prices
  • barber prices
  • tattoo prices
  • outfit save prices
  • outfit changer prices

Clothing Pricing

Configuration:

Config.System.Price.clothing = {
enabled = true,
basePrice = 50,
extraCost = 10,
maxPrice = false,
}

Clothing Price Logic

The clothing system calculates prices dynamically.

Formula:

basePrice + changedItems * extraCost

Example:

basePrice = 50
extraCost = 10
3 clothing changes

Result:
50 + (3 * 10) = 80

maxPrice

Configuration:

maxPrice = 500

Purpose:

Limits the maximum possible clothing price.

If set to:

false

no maximum limit is applied.


Ignored Clothing Categories

The clothing system supports ignored categories.

Example:

ignore = {
decals = true,
bag = true,
accessory = false,
}

Ignored categories do not increase the final clothing price.

Useful for:

  • free accessories
  • cosmetic-only items
  • roleplay items

Barber Pricing

Configuration:

Config.System.Price.barber = {
enabled = true,
basePrice = 50,
extraCost = 10,
maxPrice = false,
}

Controls pricing for:

  • hair
  • beard
  • makeup
  • overlays
  • face appearance edits

Tattoo Pricing

Configuration:

Config.System.Price.tattoo = {
enabled = true,
basePrice = 0,
extraCost = 25,
maxPrice = false,
}

Tattoo pricing is calculated per tattoo change.

Useful for:

  • realistic tattoo progression
  • premium tattoo systems
  • economy balancing

Outfit Save Pricing

Configuration:

Config.System.Price.saveoutfit = 0

Controls the cost of saving outfits.

If set to:

0

saving outfits becomes free.


Outfit Changer Pricing

Configuration:

Config.System.Price.outfitchanger = 0

Controls pricing for outfit changing systems.

Useful for:

  • clothing room systems
  • wardrobe systems
  • premium outfit switching

Money Removal Logic

Actual money removal is handled through overrides.

Default override:

function Config.Override.ServerSide.Functions.RemoveMoney(src, price)
return false
end

Developers must connect this to their economy framework.


Payment Result Behavior

Expected returns:

true  -> payment successful
false -> payment failed

If payment fails:

  • the action is blocked
  • the appearance change is cancelled
  • a notification may be shown

Dynamic Pricing Philosophy

The pricing system was intentionally designed to be flexible.

Developers may create:

  • free servers
  • realistic economy servers
  • premium customization servers
  • roleplay-focused pricing systems

without modifying protected files.


Recommended Usage

Recommended lightweight setup:

basePrice = 0
extraCost = 0

Recommended economy-focused setup:

basePrice = 50
extraCost = 15
maxPrice = 500