Advanced Wheel Clamp

:wheel: Advanced Wheel Clamp

Looking to punish illegal parking, confiscate vehicles or stop criminals from using their vehicles? Try out this inexpensive but advanced wheel clamp to exercise justice.

:shopping_cart: Get it here: gamzkystore.com

:question: Support: Discord

:movie_camera: Detailed preview: Youtube

Features

  • Apply a wheel clamp to any vehicle wheel using a target system (ox-target and qb-target will work out of the box), with an optional item and job requirement.
  • Wheel clamps can also be removed with an optional job requirement, or through lock-picking (minigame is editable and works out of the box when using ox-lib).
  • Synchronized between all players, you can clamp vehicles with players inside without any issues.
  • Driving a clamped vehicle can cause the clamped wheel to completely break off (optional).
  • When a front-wheel is clamped, you will not be able to steer the vehicle when attempting to drive (optional).
  • It is also configurable to make a clamped vehicle unable to move at all (optional).
  • Will also work on vehicles with an extra or fewer wheels, for instance on bikes or 6x6 terrain vehicles.
  • An unencrypted wheel clamp prop is included in the files.
    Resmon: 0.00ms - When driving a clamped vehicle: 0.04ms

Core/framework related functions are still accessible in the encrypted version, feel free to create a support ticket in our Discord in case of questions.

Config
Config = {}

-- The hash of the wheel clamp prop
Config.PropHash = `clamp`

-- The range at which you can interact
Config.InteractionRange = 1.25

-- Vehicle classes which cannot be clamped
Config.BlacklistClasses = { 13, 14, 15, 16, 21 }

-- The required item, set to false to disable
Config.RequiredItem = {
	Enabled = false,
	Item = 'wheel_clamp'
}

-- The allowed jobs to place/remove a wheel clamp, set Config.AllowedJobs = nil allows everyone to use it
Config.AllowedJobs = nil -- Example to add jobs: Config.AllowedJobs = { police = 0, mechanic = 0 }

Config.Lockpick = {
	Enabled = true,            -- If set to false, the wheel clamp cannot be lockpicked
	Item = nil,                -- The item name required to lockpick the wheel clamp, set to nil to disable item requirement
	AmountOfMinigames = 3,     -- The amount of successful minigames required to lockpick the wheel clamp (only for servers with ox_lib installed)
	MinigameAreaSize = 35,     -- The area size of the lockpick minigame, smaller value is more difficult (only for servers with ox_lib installed)
	MinigameSpeedMultiplier = 1.3 -- The speed multiplier for the lockpick minigame, larger value is more difficult (only for servers with ox_lib installed)
}

-- If set to true, the W and S keys will be disabled when any wheel is clamped.
Config.DisableVehicleMovement = false

Config.WheelBreakoff = {
	Enabled = true,      -- If set to false, the wheel breakoff feature will be disabled
	MinimumSpeed = 30,   -- km/h. The minimum speed of a vehicle, after which a clamped wheel can break off. Driving at a speed below Config.BreakOffWheelMinimumSpeed will ensure the clamped wheel never breaks off. When going faster then Config.BreakOffWheelMinimumSpeed, the faster you go the higher the chance of a breakoff
	IntervalTime = 6000, -- ms. Every 6 seconds (by default), the wheel can randomly break off based on chance.
	ChanceMultiplier = 1.0, -- If you want to further increase the chance of a wheel breaking off, increase this value.
}

-- If set to true, the player will not be able to steer the vehicle when a FRONT-wheel is clamped.
Config.DisableSteering = true

-- The animations to play on interactions
Config.Animations = {
	['PlaceClamp'] = {
		Dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
		Name = 'machinic_loop_mechandplayer',
		Time = 2000,
		Blend = 8.0,
		Flag = 1,
	},
	['RemoveClamp'] = {
		Dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
		Name = 'machinic_loop_mechandplayer',
		Time = 2000,
		Blend = 8.0,
		Flag = 1,
	},
	['PrepareLockpick'] = {
		Dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
		Name = 'machinic_loop_mechandplayer',
		Time = 5000,
		Blend = 8.0,
		Flag = 1,
	},
	['Lockpicking'] = {
		Dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
		Name = 'machinic_loop_mechandplayer',
		Time = 5000,
		Blend = 8.0,
		Flag = 1,
	},
}

-- You can change any labels below
Config.Locales = {
	['wheel_clamp'] = 'Wheel clamp',
	['wheel_clamp_remove'] = 'Remove wheel clamp',
	['wheel_clamp_lockpick'] = 'Lockpick wheel clamp',
	['wheel_clamp_attaching'] = 'Attaching wheel clamp',
	['wheel_clamp_detaching'] = 'Detaching wheel clamp',
	['lockpick_prepare'] = 'Preparing lockpick',
}

-- WHEEL INDICES: LF = 0, RF = 1, LR = 2, RR = 3; LM1 = 4, RM1 = 5 etc. So bone names below fixed on these indices
Config.Bones = { 'wheel_lf', 'wheel_rf', 'wheel_lr', 'wheel_rr', 'wheel_lm1', 'wheel_rm1', 'wheel_lm2', 'wheel_rm2', 'wheel_lm3', 'wheel_rm3' } -- Do not change unless you know what you are doing
Config.WheelLabels = {
	-- You can change these labels if you wish, but make sure the order stays the same (corresponds to the Config.Bones array)
	'Left-front',
	'Right-front',
	'Left-back',
	'Right-back',
	'Left-center 1',
	'Right-center 1',
	'Left-center 2',
	'Right-center 2',
	'Left-center 3',
	'Right-center 3',
}

-- An array to overwrite the indices in the Config.Bones array, in case of a two wheeled bike.
Config.TwoWheelBikeIndices = { 1, 1, 0, 0, 2, 2 }   -- Do not change unless you know what you are doing
-- An array to overwrite the indices in the Config.Bones array, in case of a three wheeled bike.
Config.ThreeWheelBikeIndices = { 0, 0, 1, 2, 3, 3 } -- Do not change unless you know what you are doing

Code is accessible No
Subscription-based No
Lines (approximately) ~700
Requirements A target-system (ox- and qb-target are tested)
Support Yes
2 Likes

Why does the prop looks like an Lod ? :thinking:

1 Like

Isnt it supposed to lock the wheel lol? the car is still driving

Hi EV-BeansFL,

This is configurable, you can make the vehicle not be able to move at all. You can also allow a player to drive with the vehicle and configure a break-off chance of the wheel. Choice is yours :blush:

Hi Rubylium,

This was the first time I ever made a prop from scratch, I am still learning :smile: