Pricing
Configure upgrade, tuning, shop and commission prices
JG Mechanic uses different settings for standard vehicle mods, custom tuning parts and mechanic shop items.
| What you're pricing | Where to change it |
|---|---|
| Standard performance mods, cosmetics and repairs | Each location's mods table in config/config.lua |
| Custom tuning parts, such as engine swaps | Config.Tuning in config/config.tuning.lua |
| Items sold in mechanic shops | Each shop's items table in config/config.lua |
| Customer invoices | Entered by the mechanic in the tablet |
| Employee commission | The owned location's commission setting in config/config.lua |
Standard mod and shop prices are configured separately for each mechanic location. Update every location if you want those prices to match. Custom tuning option prices are shared across all locations.
Standard mods and repairs
The mods table inside each entry in Config.MechanicLocations controls standard GTA upgrades:
mods = {
repair = { enabled = true, price = 500, percentVehVal = 0.01 },
performance = { enabled = true, price = 500, percentVehVal = 0.01, priceMult = 0.1 },
cosmetics = { enabled = true, price = 500, percentVehVal = 0.01, priceMult = 0.1 },
stance = { enabled = true, price = 500, percentVehVal = 0.01 },
respray = { enabled = true, price = 500, percentVehVal = 0.01 },
wheels = { enabled = true, price = 500, percentVehVal = 0.01, priceMult = 0.1 },
neonLights = { enabled = true, price = 500, percentVehVal = 0.01 },
headlights = { enabled = true, price = 500, percentVehVal = 0.01 },
tyreSmoke = { enabled = true, price = 500, percentVehVal = 0.01 },
bulletproofTyres = { enabled = true, price = 500, percentVehVal = 0.01 },
extras = { enabled = true, price = 500, percentVehVal = 0.01 }
},There are two pricing modes. Config.ModsPricesAsPercentageOfVehicleValue selects which one is used across every mechanic location.
Percentage pricing
Enable percentage pricing in config/config.lua:
Config.ModsPricesAsPercentageOfVehicleValue = trueThe base price for each category is the vehicle value multiplied by percentVehVal. The value is a decimal, so 0.01 means 1%.
For example, this makes performance upgrades start at 1% of the vehicle's value:
performance = { enabled = true, price = 500, percentVehVal = 0.01, priceMult = 0.1 },For a vehicle worth 100000, the base price is 1000. The price value is ignored while percentage pricing is enabled.
JG Mechanic checks these sources for the vehicle value, in this order:
- The price in the JG Dealerships database, if
jg-dealershipsis running and the vehicle is listed. - The vehicle price in QBCore or Qbox shared vehicle data.
- The GTA model value.
If none of these returns a value, the script uses 50000.
Addon vehicles with missing or inaccurate prices will produce unexpected upgrade prices. Add correct vehicle values or use fixed pricing instead.
Fixed pricing
Disable percentage pricing to use the price from each mods entry:
Config.ModsPricesAsPercentageOfVehicleValue = falseFor example:
performance = { enabled = true, price = 1000, percentVehVal = 0.01, priceMult = 0.1 },Every vehicle will now use a base performance price of 1000. percentVehVal is ignored.
Higher upgrade levels
priceMult increases the price of higher performance, cosmetic and wheel options. It applies in both percentage and fixed pricing modes.
A priceMult of 0.1 adds 10% of the base price for each GTA mod index above 0. With a base price of 1000, an option at mod index 3 costs 1300.
Set priceMult = 0 if every option in that category should cost the same. The default plate styles, window tints and horns already ignore this multiplier.
Custom tuning parts
Custom tuning includes engine swaps, drivetrains, turbocharging, tyres, brakes, drift tuning and gearboxes.
Each mechanic location decides whether a category uses items or money:
tuning = {
engineSwaps = { enabled = true, requiresItem = false },
}- With
requiresItem = true, applying an upgrade consumes itsitemName. Itspriceis ignored. - With
requiresItem = false, applying an upgrade takes itspricefrom the mechanic's society fund.
Set each option's cost in config/config.tuning.lua:
[1] = {
name = "I4 Turbo 2.5L",
itemName = "i4_engine",
price = 30000,
}Config.ModsPricesAsPercentageOfVehicleValue doesn't affect custom tuning.
These option prices are shared across every mechanic location. The location's requiresItem setting still decides whether that mechanic uses the item or the price.
The custom tuning price is a cost to the mechanic business. It isn't an automatic customer charge. Create an invoice in the tablet if the customer also needs to pay for the work.
Shop and servicing item prices
Set the purchase price for an item inside the mechanic location's shops table:
items = {
{ name = "engine_oil", label = "Engine Oil", price = 50 },
{ name = "tyre_replacement", label = "Tyre Replacement", price = 2500 },
}The price is charged once per item. Buying four tyre replacements at 2500 costs 10000.
When Config.UseSocietyFund = true, shop purchases use the mechanic's society fund. When it is false, they use the employee account selected by Config.PlayerBalance.
Servicing doesn't have a separate labour price. It consumes the items and quantities set in config/config.servicing.lua. Charge the customer through an invoice if needed.
Invoices and commission
Invoice line items and prices are entered by the mechanic in the tablet. There isn't a config setting for preset invoice prices.
For owned mechanics, commission pays a percentage of a completed order or paid invoice to the employee:
commission = 10,With commission = 10, the employee receives 10% and the remaining 90% stays in the society fund. Commission comes out of the amount paid. It isn't added on top of the customer's price.
Currency display
Config.Currency and Config.NumberAndDateFormat control how prices are displayed:
Config.NumberAndDateFormat = "en-US"
Config.Currency = "USD"Changing these settings doesn't convert any prices. Update the configured amounts yourself if you change your server's currency or economy.
Restart jg-mechanic after changing pricing settings.