JG Docs
Mechanic

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 pricingWhere to change it
Standard performance mods, cosmetics and repairsEach location's mods table in config/config.lua
Custom tuning parts, such as engine swapsConfig.Tuning in config/config.tuning.lua
Items sold in mechanic shopsEach shop's items table in config/config.lua
Customer invoicesEntered by the mechanic in the tablet
Employee commissionThe 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:

config/config.lua
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/config.lua
Config.ModsPricesAsPercentageOfVehicleValue = true

The 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:

config/config.lua
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:

  1. The price in the JG Dealerships database, if jg-dealerships is running and the vehicle is listed.
  2. The vehicle price in QBCore or Qbox shared vehicle data.
  3. 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/config.lua
Config.ModsPricesAsPercentageOfVehicleValue = false

For example:

config/config.lua
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:

config/config.lua
tuning = {
  engineSwaps = { enabled = true, requiresItem = false },
}
  • With requiresItem = true, applying an upgrade consumes its itemName. Its price is ignored.
  • With requiresItem = false, applying an upgrade takes its price from the mechanic's society fund.

Set each option's cost in config/config.tuning.lua:

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:

config/config.lua
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:

config/config.lua
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/config.lua
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.

On this page