> For the complete documentation index, see [llms.txt](https://rep-scripts.gitbook.io/rep-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rep-scripts.gitbook.io/rep-scripts/paid-scripts/rep-weed/installation/qb/inventory-installation/qb-inventory.md).

# qb-inventory

### Go to your `lj/qb-inventory > html > js > app.js (EARLIER VERSION BELOW THIS BLOCK)`

1. Search for the following code block:

{% code title="lj/qb-inventory > html > js > app.js" %}

```js
case "harness":
```

{% endcode %}

2. Add the following code block directly underneath the code block in Step 1:

{% code title="lj/qb-inventory > html > js > app.js" fullWidth="true" %}

```js
case "joint":
case "weedbaggie":
case "femaleseed":
	return `<p><strong>Strain: </strong>${itemData.info.strain}.</p>`
case "weedpackage":
case "driedbud":
	return `<p><strong>Strain: </strong>${itemData.info.strain}</span></p><p><strong>Remaining Weights: </strong><span>${itemData.info.remainweight} grams.</p>`
case "wetbud":
	return `<p><strong>Strain: </strong><span>${itemData.info.strain}</span></p><p><strong>Dry: </strong><span>${itemData.info.dry}%.</p>`
case "wateringcan":
	return `<p><strong>Water: </strong>${itemData.info.water}%.</p>`
```

{% endcode %}

{% hint style="warning" %}
**OR IF YOU HAVE THE EARLIER VERSION OF Ps/Lj/Qb-inventory, follow this instead for this specific step**
{% endhint %}

### Go to your `lj/qb-inventory > html > js > app.js`

1. Search for the following code block:

{% code title="lj/qb-inventory > html > js > app.js" %}

```js
} else if (itemData.name == "harness") {
```

{% endcode %}

2. Add the following code block directly underneath the code block in Step 1:

{% code title="lj/qb-inventory > html > js > app.js" %}

```js
        }else if (itemData.name == "joint") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong>" + itemData.info.strain + ".</p>"
            );
        }else if (itemData.name == "weedbaggie") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong>" + itemData.info.strain + ".</p>"
            );
        }else if (itemData.name == "femaleseed") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong>" + itemData.info.strain +".</p>"
            );
        }else if (itemData.name == "weedpackage") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong>" + itemData.info.strain +
   "</span></p><p><strong>Remain Weights: </strong><span>" +
          itemData.info.remainweight +" grams.</p>"
            );
        }else if (itemData.name == "driedbud") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong>" + itemData.info.strain +
   "</span></p><p><strong>Remain Weights: </strong><span>" +
          itemData.info.remainweight +" grams.</p>"
            );
        }else if (itemData.name == "wetbud") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Strain: </strong><span>" +
                itemData.info.strain +
                "</span></p><p><strong>Dry: </strong><span>" +
                itemData.info.dry +"%.</p>"
            );
        }else if (itemData.name == "wateringcan") {
            $(".item-info-title").html("<p>" + itemData.label + "</p>");
            $(".item-info-description").html(
                "<p><strong>Water: </strong>" + itemData.info.water + "%.</p>"
            );}
```

{% endcode %}

<figure><img src="/files/C22cCAtmsCFWF7i5Y5Ax" alt=""><figcaption><p>lj/qb-inventory > html > js > app.js (outdated but should give you the idea)</p></figcaption></figure>

***

### Go to your lj/qb-inventory > server > main.lua

1. Search for the following code:

   <pre class="language-lua" data-title="server > main.lua"><code class="lang-lua">RegisterNetEvent('inventory:server:SaveInventory', function(type, id)
   </code></pre>
2. Add the following code after the whole function:

   <pre class="language-lua" data-title="server > main.lua"><code class="lang-lua">RegisterNetEvent('rep-weed:server:saveDry',function (type,id)
   	if type == "trunk" then
   		if IsVehicleOwned(id) then
   			if Trunks[id.label] == "Trunk-None" or not Trunks[id].items then return end
   				for _, item in pairs(Trunks[id].items) do
   					item.description = nil
   				end
   				MySQL.insert('INSERT INTO trunkitems (plate, items) VALUES (:plate, :items) ON DUPLICATE KEY UPDATE items = :items', {
   					['plate'] = id,
   					['items'] = json.encode(Trunks[id].items)
   				})
   			end
   	 elseif type == "glovebox" then
   		 if (IsVehicleOwned(id)) then
   			if Gloveboxes[id].label == "Glovebox-None" or not Gloveboxes[id].items then return end
   			for _, item in pairs(Gloveboxes[id].items) do
   				item.description = nil
   			end
   			MySQL.insert('INSERT INTO gloveboxitems (plate, items) VALUES (:plate, :items) ON DUPLICATE KEY UPDATE items = :items', {
   				['plate'] = id,
   				['items'] = json.encode(Gloveboxes[id].items)
   			})
   		end
   	elseif type == "stash" then
   		if Stashes[id].label == "Stash-None" or not Stashes[id].items then return end
   		for _, item in pairs(Stashes[id].items) do
   			item.description = nil
   		end
   		MySQL.insert('INSERT INTO stashitems (stash, items) VALUES (:stash, :items) ON DUPLICATE KEY UPDATE items = :items', {
   			['stash'] = id,
   			['items'] = json.encode(Stashes[id].items)
   		})
   	end
   end)

   RegisterNetEvent('rep-weed:server:updateDry',function (type,id, slot, item)
       if type == 'stash' then
           Stashes[id].items[slot] = item
       elseif type == 'trunk' then
           Trunks[id].items[slot] = item
       elseif type == "glovebox" then
           Gloveboxes[id].items[slot] = item
       end
   end)
   </code></pre>

<figure><img src="/files/U2JmwGRMcrHp0yD1CWeA" alt=""><figcaption><p>lj/qb-inventory > server > main.lua</p></figcaption></figure>

1. Search for the following code:

   <pre class="language-lua"><code class="lang-lua"><strong>RegisterNetEvent('inventory:server:OpenInventory', function(name, id, other)
   </strong></code></pre>
2. Right before

   <pre class="language-lua"><code class="lang-lua"><strong>TriggerClientEvent("inventory:client:OpenInventory", src, {}, Player.PlayerData.items, secondInv)
   </strong></code></pre>
3. Add:&#x20;

   ```lua
   TriggerEvent('rep-weed:server:checkDry',src, Player.PlayerData.items, secondInv)
   ```

***

1. Search for the following code:

   ```lua
   TriggerClientEvent("inventory:client:OpenInventory", src, {}, Player.PlayerData.items)
   ```
2. Add this BEFORE that line:

   ```lua
   TriggerEvent('rep-weed:server:checkDry',src, Player.PlayerData.items)
   ```

<figure><img src="/files/WD9UPaCmcAFeozFErFfM" alt=""><figcaption><p>Adding checkDry (2 times)</p></figcaption></figure>

1. Search for the following code:

```lua
local function AddToStash(stashId, slot, otherslot, itemName, amount, info, created)
```

2. Right before:

```lua
local ItemData = QBCore.Shared.Items[itemName]
```

3. Add:

```lua
	if itemName == "wetbud" then
		if not info then
			info = {}
			info.time = os.time()
			info.dry = 0
		else
			if not info.time then info.time = os.time() end
			if not info.dry then info.dry = 0 end
		end
	end
```

4. (OPTIONAL) If you want weed to also dry in trunk, player or glove trunk, repeat the same process
