# old-qb-inventory

{% hint style="danger" %}
You would still need to unstack weedbaggie or weedpackage while selling.
{% endhint %}

{% hint style="info" %}
Can use for ps/lj-inventory
{% endhint %}

## Add Items:

1. Copy the image files from the `img` folder to your `inventory` folder.
2. Go to qb-core/shared/items.lua

```lua
	femaleseed 					 = {name = 'femaleseed', 			 	  	  	label = 'Female Marijuana Seed', 					weight = 1000, 		type = 'item', 		image = 'weed-seed.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Surely I can just plant this, right?'},
	maleseed 					 = {name = 'maleseed', 			 	  	  	label = 'Male Marijuana Seed', 					weight = 1000, 		type = 'item', 		image = 'weed-seed.png', 				unique = false, 		useable = false, 	shouldClose = false,   combinable = nil,   description = 'Add this to a planted female seed to make it pregnant? You are pretty sure this seed has a penis.'},
	wateringcan 					 = {name = 'wateringcan', 			 	  	  	label = 'Watering Can', 					weight = 7000, 		type = 'item', 		image = 'wateringcan.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Fill this at a river or lake.'},
	fertilizer 				 	 = {name = 'fertilizer', 			  	  	label = 'Fertilizer', 				weight = 1000, 		type = 'item', 		image = 'fertilizer.png', 			unique = false, 	useable = false, 	shouldClose = false,	   combinable = nil,   description = 'Cool'},
	wetbud 					 	 = {name = 'wetbud', 			 	  	  	label = 'Wet Bud (100 grams)', 					weight = 35000, 		type = 'item', 		image = 'wet.png', 				unique = true, 		useable = false, 	shouldClose = false,   combinable = nil,   description = 'THIS CANT BE DRIED WITHOUT STRAIN... Needs to be stored somewhere dry.'},
	driedbud 					 = {name = 'driedbud', 			 	  	  	label = 'Dried Bud (100 Grams)', 					weight = 10000, 		type = 'item', 		image = 'driedbud.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Pack It?'},
	weedpackage 					 = {name = 'weedpackage', 			 	  	  	label = 'Suspicious Package', 					weight = 25000, 		type = 'item', 		image = 'weedpackage.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Marked for Police Seizure'},
	qualityscales 					 = {name = 'qualityscales', 			 	  	  	label = 'High a', 					weight = 2000, 		type = 'item', 		image = 'qualityscales.png', 				unique = true, 		useable = false, 	shouldClose = false,   combinable = nil,   description = 'Weighs Baggies with no loss'},
	smallscales 					 = {name = 'smallscales', 			 	  	  	label = 'Small Scales', 					weight = 1000, 		type = 'item', 		image = 'smallscales.png', 				unique = true, 		useable = false, 	shouldClose = false,   combinable = nil,   description = 'Weighs Baggies with minimal loss'},
	emptybaggies 					 = {name = 'emptybaggies', 			 	  	  	label = 'Empty Baggies', 					weight = 1000, 		type = 'item', 		image = 'emptybaggies.png', 				unique = false, 		useable = false, 	shouldClose = true,   combinable = nil,   description = 'Empty Baggies'},
	joint 					 	 = {name = 'joint', 			 	  	  	label = '2g Joint', 					weight = 1000, 		type = 'item', 		image = 'joint.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Its a Joint, man.'},
	weedbaggie 					 = {name = 'weedbaggie', 			 	  	  	label = 'Baggie (7g)', 					weight = 1000, 		type = 'item', 		image = 'weedbaggie.png', 				unique = true, 		useable = true, 	shouldClose = true,   combinable = nil,   description = 'Sold on the streets'},
	rollingpaper 					 = {name = 'rollingpaper', 			 	  	  	label = 'Rolling Paper', 					weight = 2000, 		type = 'item', 		image = 'rollingpaper.png', 				unique = false, 		useable = false, 	shouldClose = false,   combinable = nil,   description = 'Required to roll joints!'},
```

## Display Metadata:

1. Go to inventory-file/html/js/app.js
2. Search for the following code block:

```javascript
case "harness":
```

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

```javascript
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>`
```

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

2. Search for the following code block:

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

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

```javascript
        }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>"
            );}
```

## Dry:

### Step 1:

#### Go to your inventory-file/server/main.lua

1. Search for the following code:

```lua
RegisterNetEvent('inventory:server:SaveInventory', function(type, id)
```

2. Add the following code after the whole event:

```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)
```

### Step 2:

1. Search for the following code:

```lua
TriggerClientEvent("inventory:client:OpenInventory", src, {}, Player.PlayerData.items, secondInv)
```

2. Add this BEFORE that line:

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

3. Search for the following code:

```lua
TriggerClientEvent("inventory:client:OpenInventory", src, {}, Player.PlayerData.items)
```

4. Add this BEFORE that line:

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

### Step 3:

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

## Give Item with metadata:

#### Go to your inventory-file/server/main.lua

1. Search for the following code:

```lua
elseif itemData["name"] == "harness" then
    info.uses = 20
```

2. Add this AFTER that line:

```lua
elseif itemData["name"] == "driedbud" then
	info.strain = "Unknown"
	info.n = 0
	info.p = 0
	info.k = 0
	info.remainweight = 100
elseif itemData["name"] == "weedpackage" then
	info.strain = "Unknown"
	info.n = 1
	info.p = 1
	info.k = 1
	info.remainweight = 100
elseif itemData["name"] == "weedbaggie" then
	info.strain = "Unknown"
	info.n = 0
	info.p = 0
	info.k = 0
elseif itemData["name"] == "wetbud" then
	info.strain = "Unknown"
	info.n = 0
	info.p = 0
	info.k = 0
	info.dry = 0
elseif itemData["name"] == "joint" then
	info.strain = "Unknown"
	info.dry = 0
	info.n = 0
	info.p = 0
	info.k = 0
elseif itemData["name"] == "maleseed" then
	info.strain = "Unknown"
	info.n = 0
	info.p = 0
	info.k = 0
elseif itemData["name"] == "Unknown" then
	info.water = 0
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.repscripts.com/paid-scripts/rep-weed/installation/inventory/old-qb-inventory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
