Installation
Add dependencies:
Add the script:
Download ak47_qb_inventory from your keymaster.
Add the script into your resources folder.
Add the script in server.cfg after qb-core and make sure all other script is starting after the inventory script.
Set discord webhook in webhooks.lua
Remove qb-shops, qb-weapons, qb-inventory
Restart your server.
You will see a message of installation complete. Then restart the server again.
Manual Installation: (optional)
By default, it will install the script automatically. If you see any error in server console you can try this manual installation.
Install database.sql into your server database.
CREATE TABLE IF NOT EXISTS `ak47_inventory` (
`identifier` varchar(46) NOT NULL,
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`data`)),
PRIMARY KEY (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Clothing As Item Modification
--Add this at the bottom of qb-clothing/client/main.lua
RegisterNetEvent('qb-clothing:client:loadOutfit2', function(oData)
local ped = PlayerPedId()
local data = oData.outfitData
if typeof(data) ~= "table" then data = json.decode(data) end
for k in pairs(data) do
skinData[k].item = data[k].item
skinData[k].texture = data[k].texture
-- To secure backwards compability for facemixing
if data[k].shapeMix then
skinData[k].shapeMix = data[k].shapeMix
end
if data[k].skinMix then
skinData[k].skinMix = data[k].skinMix
end
end
-- Pants
if data["pants"] ~= nil then
print(data["pants"].item, data["pants"].texture)
SetPedComponentVariation(ped, 4, data["pants"].item, data["pants"].texture, 0)
end
-- Arms
if data["arms"] ~= nil then
SetPedComponentVariation(ped, 3, data["arms"].item, data["arms"].texture, 0)
end
-- T-Shirt
if data["t-shirt"] ~= nil then
SetPedComponentVariation(ped, 8, data["t-shirt"].item, data["t-shirt"].texture, 0)
end
-- Vest
if data["vest"] ~= nil then
SetPedComponentVariation(ped, 9, data["vest"].item, data["vest"].texture, 0)
end
-- Torso 2
if data["torso2"] ~= nil then
SetPedComponentVariation(ped, 11, data["torso2"].item, data["torso2"].texture, 0)
end
-- Shoes
if data["shoes"] ~= nil then
SetPedComponentVariation(ped, 6, data["shoes"].item, data["shoes"].texture, 0)
end
-- Bag
if data["bag"] ~= nil then
SetPedComponentVariation(ped, 5, data["bag"].item, data["bag"].texture, 0)
end
-- Badge
if data["decals"] ~= nil then
SetPedComponentVariation(ped, 10, data["decals"].item, data["decals"].texture, 0)
end
-- Accessory
if data["accessory"] ~= nil then
if QBCore.Functions.GetPlayerData().metadata["tracker"] then
SetPedComponentVariation(ped, 7, 13, 0, 0)
else
SetPedComponentVariation(ped, 7, data["accessory"].item, data["accessory"].texture, 0)
end
else
if QBCore.Functions.GetPlayerData().metadata["tracker"] then
SetPedComponentVariation(ped, 7, 13, 0, 0)
else
SetPedComponentVariation(ped, 7, -1, 0, 2)
end
end
-- Mask
if data["mask"] ~= nil then
SetPedComponentVariation(ped, 1, data["mask"].item, data["mask"].texture, 0)
end
-- Bag
if data["bag"] ~= nil then
SetPedComponentVariation(ped, 5, data["bag"].item, data["bag"].texture, 0)
end
-- Hat
if data["hat"] ~= nil then
if data["hat"].item ~= -1 and data["hat"].item ~= 0 then
SetPedPropIndex(ped, 0, data["hat"].item, data["hat"].texture, true)
else
ClearPedProp(ped, 0)
end
end
-- Glass
if data["glass"] ~= nil then
if data["glass"].item ~= -1 and data["glass"].item ~= 0 then
SetPedPropIndex(ped, 1, data["glass"].item, data["glass"].texture, true)
else
ClearPedProp(ped, 1)
end
end
-- Ear
if data["ear"] ~= nil then
if data["ear"].item ~= -1 and data["ear"].item ~= 0 then
SetPedPropIndex(ped, 2, data["ear"].item, data["ear"].texture, true)
else
ClearPedProp(ped, 2)
end
end
if data["watch"] ~= nil then
if data["watch"].item ~= -1 and data["watch"].item ~= 0 then
SetPedPropIndex(ped, 6, data["watch"].item, data["watch"].texture, true)
else
ClearPedProp(ped, 6)
end
end
-- Bracelet
if data["bracelet"] ~= nil then
if data["bracelet"].item ~= -1 and data["bracelet"].item ~= 0 then
SetPedPropIndex(ped, 7, data["bracelet"].item, data["bracelet"].texture, true)
else
ClearPedProp(ped, 7)
end
end
end)
AddEventHandler('qb-clothing:getSkin', function(cb)
cb(skinData)
end)
--Add this at the bottom of illenium-appearance/client/outfits.lua
RegisterNetEvent('qb-clothing:client:loadOutfit2', function(oData)
local ped = cache.ped
local data = oData.outfitData
if typeof(data) ~= "table" then
data = json.decode(data)
end
-- Pants
if data["pants"] ~= nil then
SetPedComponentVariation(ped, 4, data["pants"].item, data["pants"].texture, 0)
end
-- Arms
if data["arms"] ~= nil then
SetPedComponentVariation(ped, 3, data["arms"].item, data["arms"].texture, 0)
end
-- T-Shirt
if data["t-shirt"] ~= nil then
SetPedComponentVariation(ped, 8, data["t-shirt"].item, data["t-shirt"].texture, 0)
end
-- Vest
if data["vest"] ~= nil then
SetPedComponentVariation(ped, 9, data["vest"].item, data["vest"].texture, 0)
end
-- Torso 2
if data["torso2"] ~= nil then
SetPedComponentVariation(ped, 11, data["torso2"].item, data["torso2"].texture, 0)
end
-- Shoes
if data["shoes"] ~= nil then
SetPedComponentVariation(ped, 6, data["shoes"].item, data["shoes"].texture, 0)
end
-- Badge
if data["decals"] ~= nil then
SetPedComponentVariation(ped, 10, data["decals"].item, data["decals"].texture, 0)
end
-- Accessory
local tracker = Config.TrackerClothingOptions
if data["accessory"] ~= nil then
if Framework.HasTracker() then
SetPedComponentVariation(ped, 7, tracker.drawable, tracker.texture, 0)
else
SetPedComponentVariation(ped, 7, data["accessory"].item, data["accessory"].texture, 0)
end
else
if Framework.HasTracker() then
SetPedComponentVariation(ped, 7, tracker.drawable, tracker.texture, 0)
else
local drawableId = GetPedDrawableVariation(ped, 7)
if drawableId ~= -1 then
local textureId = GetPedTextureVariation(ped, 7)
if drawableId == tracker.drawable and textureId == tracker.texture then
SetPedComponentVariation(ped, 7, -1, 0, 2)
end
end
end
end
-- Mask
if data["mask"] ~= nil then
SetPedComponentVariation(ped, 1, data["mask"].item, data["mask"].texture, 0)
end
-- Bag
if data["bag"] ~= nil then
SetPedComponentVariation(ped, 5, data["bag"].item, data["bag"].texture, 0)
end
-- Hat
if data["hat"] ~= nil then
if data["hat"].item ~= -1 then
SetPedPropIndex(ped, 0, data["hat"].item, data["hat"].texture, true)
else
ClearPedProp(ped, 0)
end
end
-- Glass
if data["glass"] ~= nil then
if data["glass"].item ~= -1 then
SetPedPropIndex(ped, 1, data["glass"].item, data["glass"].texture, true)
else
ClearPedProp(ped, 1)
end
end
-- Ear
if data["ear"] ~= nil then
if data["ear"].item ~= -1 then
SetPedPropIndex(ped, 2, data["ear"].item, data["ear"].texture, true)
else
ClearPedProp(ped, 2)
end
end
-- Watch
if data["watch"] ~= nil then
if data["watch"].item ~= -1 then
SetPedPropIndex(ped, 6, data["watch"].item, data["watch"].texture, true)
else
ClearPedProp(ped, 6)
end
end
-- Bracelet
if data["bracelet"] ~= nil then
if data["bracelet"].item ~= -1 then
SetPedPropIndex(ped, 7, data["bracelet"].item, data["bracelet"].texture, true)
else
ClearPedProp(ped, 7)
end
end
end)
No modification required.
Notes:
Don't upload the script with FileZilla, Use Winscp if you are using FTP for file uploading.
Renaming of the script is not allowed.
We do not support custom frameworks, highly modified versions of QBCore, or deprecated/outdated versions of anything.
Last updated