Browse docs

Tuning and Orders

Configure tuning access, prices, required parts, payments, installations, and refunds.

Tuning modes

Sky Mechanic Job supports workshop tuning, public self-service tuning, and optional instant tuning locations. Access and pricing should be reviewed separately for each mode.

Instant tuning can be public, mechanic-only, or restricted to an allow-list of jobs. Its price multiplier is applied on top of the normal tuning price. The global Instant Tuning > Tuning tab in /jobconfig has a dedicated instantTuningProfile, so public locations can expose a smaller selection than normal workshops. Menu visibility and purchase payloads are both validated against that profile.

Order lifecycle

  1. A customer or mechanic selects tuning options.
  2. The resource calculates the price from the configured vehicle value and pricing profile.
  3. The customer selects an enabled payment method.
  4. A tuning order is created for the mechanic workflow.
  5. Required items and installation steps are completed.
  6. Installed tuning and order history are saved for the vehicle plate.

Orders can also store refund information. Confirm the order state before refunding or repeating an installation.

Pricing

Config.TuningCostProfile supports percentage-based and fixed pricing.

SettingPurpose
priceTypeSelects percentage or fixed prices
fallbackVehicleValueUsed when no vehicle purchase price is found
freeVehiclesMakes all tuning options free for listed models
addRevenueToSocietyDeposits paid tuning revenue into the mechanic society account
publicUsersSeePricesControls whether public users see normal prices

Percentage pricing is only reliable when vehicle catalog prices can be resolved. Custom vehicle shops may require the open vehicle price lookup hook in config/sv_functions.lua.

Per-job tuning restrictions

Each mechanic job can control more than complete tuning categories. In Tuning Prices inside /jobconfig, staged upgrades can be enabled or disabled individually, while direct-value options can define allowed or blocked values.

RulePurpose
enabled = false on an optionHides the complete tuning option
enabled = false on a staged entryHides only that upgrade stage
allowedValuesAllows only the listed values or ranges
blockedValuesBlocks the listed values or ranges

Values can be numbers or inclusive ranges written as strings. For example, the GTA Chameleon paint range can be blocked with:

color_primary = {
    enabled = true,
    cost = 1.12,
    items = { "spray_can" },
    blockedValues = { "161-242" }
}

The Job Configurator includes presets for Standard and Chameleon paint values. Restrictions are applied in the menu and validated again by the server when an order is created.

Electronic exhaust smoke

electronic_exhaust_smoke_color is a persistent electronic tuning option. Level 0 disables the effect; levels 1 through 10 select black, white, red, orange, yellow, green, cyan, blue, purple, or pink smoke. Under the shipped pricing profile, level 0 is free and the colored levels each use a cost value of 4.654.65% with the shipped percentage pricing—and require one ecu_tuning_kit.

The option lives under each job's tuningCostProfile.optionCostByOptionId. On startup, the release adds missing electronic_* options from the current defaults to saved /jobconfig profiles while preserving existing entries. Review Tuning Prices after the first start, then test preview cancellation as well as installation, reconnect, vehicle ownership changes, and garage persistence.

Runtime plate styles

The Plate Style tuning option reads the plate-style count available in the current game runtime instead of stopping at an older hard-coded range. This includes the Enhanced variant when it is available on the server's game build. Pricing and item requirements remain controlled by the existing plate_index entry, and the selected style is stored with the vehicle's normal tuning properties.

Plate style is separate from the Fake Plate Integration: it changes the visual background/style, not the real or displayed registration text.

Workshop vehicle classes

Every mechanic job can select the GTA vehicle classes it services. The restriction applies to tuning purchases, tuning removal, diagnostic repairs, and tuning-order installation. Leave the selection empty to accept every vehicle class.

The server resolves the actual networked vehicle, checks its entity type and player distance, and then validates its class. A modified client payload therefore cannot claim that an unsupported vehicle belongs to another class.

Required items

Individual tuning options can be enabled or hidden and can require one or more inventory items. Items are normally consumed after a successful installation unless that option explicitly keeps them.

Keep these three areas synchronized:

  • Inventory item definitions
  • Mechanic shop or Parts Shop catalog
  • Tuning option item requirements

Order item source

Every mechanic job can decide whether order installation parts come from the installing player's inventory or from the workshop's shared job storage.

SourceWhat mechanics see
Player inventoryOrders check the mechanic's carried items and consume them after a successful install.
StorageOrders show the combined amount available in the mechanic station storage and consume parts directly from storage after a successful install.

Storage mode is useful when shops want all install parts to be controlled centrally through the workshop storage. Make sure the station storage belongs to the same mechanic job and contains the exact item names required by the tuning option, such as wheels, stance_kit, engine_sound_kit, or diagnostic repair items.

Workshop enforcement

Config.TuningWorkshopRequirement can require order installations and tuning removals to take place near a self-service tuning workshop point. Enable this when mechanics should not complete work anywhere on the map.

Installation flows

Different modifications can use wheel, hood, lift, oil-change, fluid-refill, paint, or other configured flows. Workshop points and required items must support every enabled flow.

Wheel-based tasks adapt to the actual vehicle. Normal four-wheel vehicles keep four wheel positions, while motorcycles use front and rear wheel tasks. Test custom vehicle models with unusual wheel layouts before launch.

Safe tuning previews

The connected vehicle is frozen while unpaid live-preview modifications are active. Keyboard and controller driving controls are blocked until the tuning session is closed.

The preview is cancelled and the original vehicle state is restored if the player:

  • Leaves the vehicle or loses the driver seat
  • Moves the vehicle unexpectedly
  • Leaves the configured self-service workshop area
  • Stops the resource while a preview is active

Vehicles that were already frozen, such as vehicles on a Workshop Lift, remain frozen after the tuning session closes.

Tuning menu navigation

Performance, Bodywork, Wheels, and Paint remain in the main navigation. Secondary sections such as Lights, Engine Sounds, Stancer, Extras, and Utility are available through the localized More menu. The basket remains directly accessible.

Saving installed tuning

With the shared vehicle-storage update, a confirmed tuning purchase, administrator save, or completed parts installation writes standard colours and mods directly to the existing vehicle record: owned_vehicles.vehicle on ESX, player_vehicles.mods on QBCore/Qbox, or the Sky job garage's vehicle_mods. The vehicle does not need to be parked first. Unpaid previews do not commit those standard mods.

The garage must preserve and apply those fields in its own park/spawn flow. Follow Garage Integration for the required resource updates, MSK changes, and migration of older snapshots. Stancer, custom handling, Nitro and other additional Mechanic systems retain their own persistence.

Testing checklist

  • Test both percentage and fixed prices before launch.
  • Verify cash, card, and society behavior used by your setup.
  • Confirm paid revenue reaches the expected society account.
  • Confirm required items are removed only after a successful install.
  • Verify both Order item source modes if you use storage-based installs.
  • Test a cancelled or failed install for unintended item loss.
  • Verify free vehicles, disabled stages, and allowed or blocked values behave as configured.
  • Confirm a modified or stale order payload cannot submit a blocked value.
  • Confirm closing or leaving an unpaid preview restores the original vehicle.
  • Confirm installed colours and mods appear in the ownership JSON before parking, then remain correct after storing, retrieving, and restarting the vehicle.
  • Verify each specialized workshop accepts its configured classes and rejects unsupported vehicles.
  • Verify motorcycle wheel installs and repairs only ask for the available wheel positions.
  • Verify disabled Instant Tuning options are hidden and rejected when submitted directly.
  • Verify all configured exhaust-smoke colors persist and consume the intended ECU Tuning Kit.
  • Verify Plate Style lists every style exposed by the current game build, including Enhanced when available.