> For the complete documentation index, see [llms.txt](https://lquensdocs.gitbook.io/lquens/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lquensdocs.gitbook.io/lquens/ls-inventoryhud/installation/qbcore.md).

# QBCore

Locate <mark style="color:purple;">**"qb-core > server > player.lua"**</mark>

<details>

<summary>Add Item</summary>

Find **"AddItem"** and replace with that

{% code title="qb-core > server > player.lua" lineNumbers="true" %}

```lua
function self.Functions.AddItem(item, amount, slot, info)
	exports["ls-inventoryhud"]:AddItem(self.PlayerData.source, item, amount, info)
end
```

{% endcode %}

</details>

<details>

<summary>RemoveItem</summary>

Find **"RemoveItem"** and replace with that

{% code title="qb-core > server > player.lua" lineNumbers="true" %}

```lua
    function self.Functions.RemoveItem(item, amount, id)
		local getItem = exports["ls-inventoryhud"]:GetItem(self.PlayerData.source, id)
		if getItem ~= nil then
			return exports["ls-inventoryhud"]:RemoveItem(self.PlayerData.source, id, amount)
		else
			local newItem = self.Functions.GetItemByName(item)
			if newItem ~= nil then
				return exports["ls-inventoryhud"]:RemoveItem(self.PlayerData.source, newItem._id, amount)
			end
		end
		return false
    end
```

{% endcode %}

</details>

<details>

<summary>GetItemByName</summary>

Find **"GetItemByName"** and replace with that

{% code title="qb-core > server > player.lua" lineNumbers="true" %}

```lua
function self.Functions.GetItemByName(item)
	item = tostring(item):lower()
		
	for k ,v in pairs ( exports["ls-inventoryhud"]:GetItems(self.PlayerData.source) ) do
		if v._tpl == item then
			return v
		end
	end
end
```

{% endcode %}

</details>

<details>

<summary>GetItemsByName</summary>

Find **"GetItemsByName"** and replace with that

{% code title="qb-core > server > player.lua" lineNumbers="true" %}

```lua
function self.Functions.GetItemsByName(item)
	item = tostring(item):lower()
	local items = {}
	for k ,v in pairs ( exports["ls-inventoryhud"]:GetItems(self.PlayerData.source) ) do
		if v._tpl == item then
			items[#items+1] = v
		end
	end
        return items
end
```

{% endcode %}

</details>

### ! IF YOUR VERSION NEWEST OF QB-CORE !

Locate <mark style="color:purple;">**"qb-core > server > player.lua"**</mark>\
Find **"QBCore.Player.CreatePlayer"**\
Find **"self.Functions = {}"** and add this functions <mark style="color:orange;">**(!!YOU NEED TO ADD BOTTOM OF self.Functions IF YOU DONT YOU GET ERRORS!!),**</mark>

<details>

<summary>NEW QBCORE CODE</summary>

{% code title="qb-core > server > player.lua" lineNumbers="true" %}

```lua
function self.Functions.AddItem(item, amount, slot, info)
	exports["ls-inventoryhud"]:AddItem(self.PlayerData.source, item, amount, info)
end

function self.Functions.RemoveItem(item, amount, id)
	local getItem = exports["ls-inventoryhud"]:GetItem(self.PlayerData.source, id)
	if getItem ~= nil then
		return exports["ls-inventoryhud"]:RemoveItem(self.PlayerData.source, id, amount)
	else
		local newItem = self.Functions.GetItemByName(item)
		if newItem ~= nil then
			return exports["ls-inventoryhud"]:RemoveItem(self.PlayerData.source, newItem._id, amount)
		end
	end
	return false
    end

function self.Functions.GetItemByName(item)
	item = tostring(item):lower()
		
	for k ,v in pairs ( exports["ls-inventoryhud"]:GetItems(self.PlayerData.source) ) do
		if v._tpl == item then
			return v
		end
	end
end

function self.Functions.GetItemsByName(item)
	item = tostring(item):lower()
	local items = {}
	for k ,v in pairs ( exports["ls-inventoryhud"]:GetItems(self.PlayerData.source) ) do
		if v._tpl == item then
			items[#items+1] = v
		end
	end
        return items
end
```

{% endcode %}

</details>

<details>

<summary>qb-core HasItems</summary>

First we need to replace `HasItem` function in client side, \ <mark style="color:purple;">**"qb-core/client/functions.lua"**</mark>

{% code title="Replace with this code" lineNumbers="true" %}

```lua
function QBCore.Functions.HasItem(item)
    local p = promise.new()
    QBCore.Functions.TriggerCallback('QBCore:HasItem', function(result)
        p:resolve(result)
    end, item)
    return Citizen.Await(p)
end
```

{% endcode %}

After the replace `HasItem` function in client side, locate \ <mark style="color:purple;">**"qb-core/server/events.lua",**</mark> scroll the bottom and add this code snippet

{% code title="Add this Code Snippet" lineNumbers="true" %}

```lua
QBCore.Functions.CreateCallback('QBCore:HasItem', function(source, cb, items, amount)
    local retval = false
    local Player = QBCore.Functions.GetPlayer(source)
    if not Player then return cb(false) end

    if Player.Functions.GetItemByName(items) ~= nil then
        retval = true
    end
    cb(retval)
end)
```

{% endcode %}

</details>

## Skin

Locate <mark style="color:purple;">**"qb-clothing > client > main.lua"**</mark>

<details>

<summary>SaveSkin</summary>

Find **"SaveSkin"** and replace with that

{% code title="qb-clothing > client > main.lua" lineNumbers="true" %}

```
function SaveSkin()
    local model = GetEntityModel(PlayerPedId())
    local clothing = json.encode(skinData)
    TriggerServerEvent("qb-clothing:saveSkin", model, clothing)
    TriggerEvent("ls-inventoryhud:c:refreshClothes")

    TriggerEvent("ls-inventoryhud:c:giveClothesAsItem", skinData, previousSkinData, false)
end
```

{% endcode %}

</details>
