QB
Ready-made file
You can either directly use this file to replace the original or use the instructions below to make the changes yourself and maybe learn a thing here and there.
Initialization
Add the following at the top of the file:
local QB = exports["qb-core"]:GetCoreObject()Register all commands
Replace the RegisterCommands function with the following:
function RegisterCommands()
	QB.Commands.Add(attachClampCommand, "Attach a clamp to the closest vehicle wheel.", nil, false, OnAttachClampCommand, table.unpack(commandPermissions))
	QB.Commands.Add(removeClampCommand, "Remove the clamp from the closest vehicle wheel.", nil, false, OnRemoveClampCommand, table.unpack(commandPermissions))
endRegister all items
Replace the RegisterItems function with the following:
function RegisterItems()
	if (clampItemName) then
		QB.Functions.CreateUseableItem(clampItemName, StartClampingProcess)
	end
	if (removalToolItemName) then
		QB.Functions.CreateUseableItem(removalToolItemName, StartRemovalProcess)
	end
	if (destroyItemName) then
		QB.Functions.CreateUseableItem(destroyItemName, StartDestructionProcess)
	end
endCheck if a player has an item
Replace the GetPlayerHasItem function with the following:
function GetPlayerHasItem(playerId, itemName)
	local player = QB.Functions.GetPlayer(playerId)
	assert(player, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
	return player.Functions.GetItemByName(itemName) ~= nil
endAdd an item to player inventory
Replace the AddPlayerItem function with the following:
function AddPlayerItem(playerId, itemName)
	local player = QB.Functions.GetPlayer(playerId)
	assert(player, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
	return player.Functions.AddItem(itemName, 1)
endRemove an item from player inventory
Replace the RemovePlayerItem function with the following:
function RemovePlayerItem(playerId, itemName)
	local player = QB.Functions.GetPlayer(playerId)
	assert(player, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
	player.Functions.RemoveItem(itemName, 1)
endLast updated