Configuration
Everything is in config.lua. Restart the resource after a change.
| Option | Default | Description |
|---|---|---|
Config.Framework | 'auto' | auto, qbox, qbcore, esx, standalone |
Config.Locale | 'en' | en or tr |
Config.Debug | false | console output, enables /vhdebug for admins |
Config.Commands.open | { 'vh', 'vehiclehandling' } | commands that open the editor |
Config.Commands.focus / focusKey | 'vhfocus' / 'F7' | return to the editor after Test drive |
Config.Commands.debug | 'vhdebug' | cache, reload, vehicle |
Config.Permissions.ace | 'ns-vehiclehandling.admin' | ACE that grants access |
Config.Permissions.useFramework / groups | true / admin, god, superadmin | framework admin groups |
Config.Editor.requireDriverSeat | true | only the driver can open the editor |
Config.Editor.revertOnClose | true | unsaved preview values are removed on close |
Config.AutoApply.enabled | true | apply the active profile on spawn |
Config.AutoApply.includeAmbient | true | also traffic / parked vehicles |
Config.AutoApply.scanOnStart | true | one pass over existing vehicles after a restart |
Config.AutoApply.updateExistingOnSave | true | saving updates vehicles already using the profile |
Config.HandlingNames | {} | model = handlingId, only where vehicles.meta uses a different handlingId (the active profile is written to the model's global handling) |
Config.Refresh.enabled | true | Apply & refresh button |
Config.Refresh.giveKeys | true | give keys again after a refresh |
Config.Refresh.copyStateBags | { 'fuel', 'vehicleid' } | state bags copied to the new entity |
Config.Profiles.maxPerModel | 20 | profile limit per model |
Config.Profiles.nameMinLength / nameMaxLength | 2 / 32 | profile name length |
Config.History.enabled / maxVersions | true / 10 | version history |
Config.Database.autoCreateTables | true | create tables on start |
Config.Database.profilesTable / versionsTable | see file | table names |
Config.Security.* | see file | request limits and cooldowns |
Config.AllowedFields | all 34 | remove a line to hide a field and block it on the server |
Config.FieldRanges | empty | per-field { min, max } overrides |
Field units
Values are in native units (what GetVehicleHandlingFloat returns): fSteeringLock and
fTractionCurveLateral in radians, fInitialDriveMaxFlatVel in m/s, bias values doubled. A value
equal to the model's original value is always accepted.
Bridge
bridge/framework.lua (notifications, fuel, keys, vehicle properties) and bridge/permission.lua
(admin check) are not encrypted and can be adapted to custom resources.