🕵️♂️Usage
Open the shop
Drive a vehicle into a configured zone and press E to open.
HUD is hidden; radar is disabled while UI is open.
Non-mechanics in both mode get cosmetics-only when mechanics online ≥
minMechanic.
Preview & Select
Choose a category. The script temporarily applies the mod for live preview.
Horn preview: a hidden ghost vehicle plays the horn for ~15 seconds.
Buy
UI computes total price based on differences from your current vehicle state.
On purchase, server validates with
risk-tuner:checkMoney:If mechanic and
UseSocity=true, debit society.If self-tuning and
GoInSoicity=true, credit society; always remove player cash for self-tuning.
On success, server saves mods by plate:
ESX:
owned_vehicles.vehicleJSONQB:
player_vehicles.modsJSON
Exit without purchase
All temporary changes are reverted to the original vehicle state.
5) Blips Behavior
mechanic: show mechanic blips. Tuner/public blips remain under your
hideblip/visibility rules.self: show public tuner blips to everyone.
both:
Mechanics: see mechanic locations.
Players: see tuner/public blips only when mechanics online <
minMechanic. When enough mechanics are online, tuner blips can hide, depending onhideblip.
The client auto-refreshes blips when job or mechanic count changes.
6) Developer Notes
Callbacks & Events
lib.callback.register('risk-tuner:checkMoney')server-side price validationlib.callback.register('risk-tuner:getJob')returns if player is mechaniclib.callback.register('risk-tuner:isRestart')simple ready checkrisk-tuner:updateTotalMechanicserver event to broadcast countrisk-tuner:setTotalMechanicclient event to refresh blips
Debug helpers
Client command
baranrestores the captured pre-preview properties to the vehicle.Server command
addmoneytest(ESX): adds 50,000 to the society for quick testing.
Security
All billing is server-authoritative. NUI price edits or devtools tricks are ignored because the server recalculates and validates the payable amount before saving.
Last updated