Pricing
Mod pricing in t1ger_tuning is built from several independent layers that stack together. Understanding each layer — and where it's calculated — makes it much easier to tune the economy to fit your server, whether you want mods to feel cheap and accessible or expensive and prestige-driven.
The Core Formula
Every mod variant's price is calculated in this order:
1. Base Price
Each mod type has a base price set in shared/modtypes.lua (modData.price). Some mods also define per-variant prices directly (modData.variants[index].price) — when a variant has its own explicit price, that's used exactly as-is, and none of the calculation below applies to it. This is useful for mods where certain options are genuinely worth more than a formula could capture (e.g. a rare paint style, a premium wheel design).
2. Escalation (only for mods without a variant-level price)
If a mod has escalation = true set in shared/modtypes.lua, each successive variant costs progressively more than the last, controlled by:
lua
Config.PriceEscalationPercent = 5 -- % increase per variant indexAt 5%, variant 0 costs base price × 1.05, variant 1 costs base price × 1.10, variant 2 costs × 1.15, and so on. This makes "the highest tier is the most expensive" happen automatically without needing to hand-price every single option — useful for mods with a long list of similar variants (like most performance upgrades).
3. Vehicle Value Tiering
On top of the base/escalated price, a portion of the vehicle's own market value gets added — so modding an expensive supercar costs more than modding a beater, even for the exact same part:
lua
Config.TieredPricing = true -- master toggle for this whole layer
Config.PriceTiers = {
{ upperLimit = 10000, multiplier = 0.05 }, -- cars up to $10k: +5% of vehicle value
{ upperLimit = 50000, multiplier = 0.03 }, -- cars up to $50k: +3%
{ upperLimit = 100000, multiplier = 0.02 }, -- cars up to $100k: +2%
{ upperLimit = 500000, multiplier = 0.01 }, -- cars up to $500k: +1%
{ upperLimit = math.huge, multiplier = 0.005 }, -- everything above: +0.5%
}The vehicle's price is matched against the first tier whose upperLimit it fits under, and that tier's multiplier is applied to the vehicle's value and added to the base price. If a vehicle's real market value can't be determined, Config.DefaultVehiclePrice is used instead — worth setting this to something reasonable for your server's average vehicle price if you use tiered pricing.
One important exception: if a mod's base price is exactly 0, tiered pricing is skipped entirely and the mod stays completely free — this is how you make specific mods (or specific "remove/stock" variants) genuinely free regardless of what car it's on.
The Two Extra Layers (Applied at Checkout, Not in the Base Formula)
These are separate from everything above — they're markups added on top, depending on how the player is buying:
Incentivized Pricing — a markup applied only when a player checks out directly through the mods menu themselves, without involving a tuner:
lua
This is a soft nudge, not a hard requirement — you can force real tuner interaction entirely instead by setting Config.ModsMenu.DisableCheckout = true, which removes direct checkout altogether and requires every customer to place a mod order.
Shop Markup — the tuner shop boss's own configurable markup percentage, applied when a mod order or customs checkout goes through their shop. This is set per-shop by the boss (up to Config.Shop.Markup.max), letting individual shops price themselves higher or lower than competitors — a genuine player-driven economy lever, not something you configure globally.
Worked Example
A tuner installs an engine upgrade (base price $3,000, no escalation) on a $30,000 car, with default tiered pricing:
Base price: $3,000
$30,000 falls into the "up to $50,000" tier → 3% multiplier
Tier addition: $30,000 × 0.03 = $900
Calculated price: $3,000 + $900 = $3,900
If bought directly through the mods menu (no tuner): $3,900 × 1.25 = $4,875
If bought through a tuner shop with a 10% shop markup instead: $3,900 × 1.10 = $4,290
Configuring for Your Server's Economy
Want mods to feel cheap and accessible? Lower or disable
PriceEscalationPercent, disableTieredPricingentirely, and keep base prices inmodtypes.lualow.Want expensive cars to be a genuine status symbol to mod? Keep tiered pricing on and make sure
Config.DefaultVehiclePriceand your vehicle price source are accurate — this is what makes supercars cost dramatically more to tune than a beater.Want to push players toward roleplay with tuners instead of self-service? Raise
IncentivizedPricing.percent, or go further and setDisableCheckout = trueto remove self-service entirely.Want certain mods to always be free (e.g. a starter/basic option)? Set that specific mod or variant's price to
0inmodtypes.lua— remember this also skips the vehicle-value tier addition automatically.
Reference
Config.PriceEscalationPercent
config.lua
% cost increase per variant index, for mods with escalation = true
Config.DefaultVehiclePrice
config.lua
Fallback vehicle value when the real one can't be determined
Config.TieredPricing
config.lua
Master toggle for vehicle-value-based pricing
Config.PriceTiers
config.lua
The tier table itself — fully editable, more tiers can be added
Config.PartAcquisitionCost
config.lua
Whether the item's own value is factored into the part's acquisition cost
Config.Prices
config.lua
Base prices for paints and RGB custom colors specifically
modData.price
shared/modtypes.lua
Base price per mod type
modData.variants[i].price
shared/modtypes.lua
Explicit per-variant price override, skips escalation
modData.escalation
shared/modtypes.lua
Enables per-variant price escalation for that mod
Config.ModsMenu.IncentivizedPricing
config.lua
Self-checkout markup
Config.Shop.Markup
config.lua
Per-shop boss-configurable markup
Last updated