Browse docs
Tuning and Orders
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
- A customer or mechanic selects tuning options.
- The resource calculates the price from the configured vehicle value and pricing profile.
- The customer selects an enabled payment method.
- A tuning order is created for the mechanic workflow.
- Required items and installation steps are completed.
- 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.
| Setting | Purpose |
|---|---|
priceType | Selects percentage or fixed prices |
fallbackVehicleValue | Used when no vehicle purchase price is found |
freeVehicles | Makes all tuning options free for listed models |
addRevenueToSociety | Deposits paid tuning revenue into the mechanic society account |
publicUsersSeePrices | Controls 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.
| Rule | Purpose |
|---|---|
enabled = false on an option | Hides the complete tuning option |
enabled = false on a staged entry | Hides only that upgrade stage |
allowedValues | Allows only the listed values or ranges |
blockedValues | Blocks 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.65—4.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.
| Source | What mechanics see |
|---|---|
Player inventory | Orders check the mechanic's carried items and consume them after a successful install. |
Storage | Orders 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.