There's a major script error in new update when a player attempts to buy an item:
For some reason, according to the error it looks like the resource is trying to add the file's code to the inventory???? No idea what's going on there.
[ script:qb-inventory] SCRIPT ERROR: @qb-inventory/server/main.lua:644: attempt to index a nil value (local 'ItemData')
[ script:qb-inventory] > ref (@qb-inventory/server/main.lua:644)
[ script:qb-inventory] > AddItem (nsertstr = 'INSERT INTO %s (%s) VALUES (%s)'
[ script:qb-inventory] if shared.framework == 'ESX' then
[ script:qb-inventory] vehicletable = 'owned_vehicles'
[ script:qb-inventory] vehiclemod = 'vehicle'
[ script:qb-inventory] garage = 'Garage A'
[ script:qb-inventory] columns = '`plate`, `'..vehiclemod..'`, `'..owner..'`, `'..stored..'`, `job`'
[ script:qb-inventory] values = '?, ?, ?, ?, ?'
[ script:qb-inventory] elseif shared.framework == 'QBCORE' then
[ script:qb-inventory] vehicletable = 'player_vehicles'
[ script:qb-inventory] vehiclemod = 'mods'
[ script:qb-inventory] owner = 'license'
[ script:qb-inventory] stored = 'state'
[ script:qb-inventory] garage_id = 'garage'
[ script:qb-inventory] type_ = 'vehicle'
[ script:qb-inventory] playertable = 'players'
[ script:qb-inventory] playeridentifier = 'citizenid'
[ script:qb-inventory] playeraccounts = 'money'
[ script:qb-inventory] garage = 'pillboxgarage'
[ script:qb-inventory] columns = '`plate`, `'..vehiclemod..'`, `'..owner..'`, `'..stored..'`, `job`, `citizenid`, `hash`, `garage`, `vehicle`'
[ script:qb-inventory] values = '?, ?, ?, ?, ?, ?, ?, ?, ?'
[ script:qb-inventory] end
[ script:qb-inventory]
[ script:qb-inventory] function GetPlayerFromIdentifier(identifier)
[ script:qb-inventory] self = {}
[ script:qb-inventory] if shared.framework == 'ESX' then
[ script:qb-inventory] local player = ESX.GetPlayerFromIdentifier(identifier)
[ script:qb-inventory] self.src = player and player.source
[ script:qb-inventory] return player
[ script:qb-inventory] else
[ script:qb-inventory] local getsrc = QBCore.Functions.GetSource(identifier)
[ script:qb-inventory] if not getsrc then return end
[ script:qb-inventory] self.src = getsrc
[ script:qb-inventory] return GetPlayerFromId(self.src)
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory]
[ script:qb-inventory] function GetPlayerFromId(src)
[ script:qb-inventory] self = {}
[ script:qb-inventory] self.src = src
[ script:qb-inventory] if shared.framework == 'ESX' then
[ script:qb-inventory] return ESX.GetPlayerFromId(self.src)
[ script:qb-inventory] elseif shared.framework == 'QBCORE' then
[ script:qb-inventory] xPlayer = QBCore.Functions.GetPlayer(self.src)
[ script:qb-inventory] if not xPlayer then return end
[ script:qb-inventory] if xPlayer.identifier == nil then
[ script:qb-inventory] xPlayer.identifier = xPlayer.PlayerData.license
[ script:qb-inventory] end
[ script:qb-inventory] if xPlayer.citizenid == nil then
[ script:qb-inventory] xPlayer.citizenid = xPlayer.PlayerData.citizenid
[ script:qb-inventory] end
[ script:qb-inventory] if xPlayer.job == nil then
[ script:qb-inventory] xPlayer.job = xPlayer.PlayerData.job
[ script:qb-inventory] end
[ script:qb-inventory]
[ script:qb-inventory] xPlayer.getMoney = function(value)
[ script:qb-inventory] return xPlayer.PlayerData.money['cash']
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.addMoney = function(value)
[ script:qb-inventory] QBCore.Functions.GetPlayer(self.src).Functions.AddMoney('cash',tonumber(value))
[ script:qb-inventory] return true
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.addAccountMoney = function(type, value)
[ script:qb-inventory] type = type:gsub('money', 'cash')
[ script:qb-inventory] QBCore.Functions.GetPlayer(self.src).Functions.AddMoney(type,tonumber(value))
[ script:qb-inventory] return true
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.removeMoney = function(value)
[ script:qb-inventory] QBCore.Functions.GetPlayer(self.src).Functions.RemoveMoney('cash',tonumber(value))
[ script:qb-inventory] return true
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.getAccount = function(type)
[ script:qb-inventory] if type == 'money' then
[ script:qb-inventory] type = 'cash'
[ script:qb-inventory] end
[ script:qb-inventory] return {money = xPlayer.PlayerData.money[type]}
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.removeAccountMoney = function(type,val)
[ script:qb-inventory] if type == 'money' then
[ script:qb-inventory] type = 'cash'
[ script:qb-inventory] end
[ script:qb-inventory] QBCore.Functions.GetPlayer(self.src).Functions.RemoveMoney(type,tonumber(val))
[ script:qb-inventory] return true
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.showNotification = function(msg)
[ script:qb-inventory] TriggerEvent('QBCore:Notify',self.src, msg)
[ script:qb-inventory] return true
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.addInventoryItem = function(item,amount,info,slot)
[ script:qb-inventory] local info = info
[ script:qb-inventory] QBCore.Functions.GetPlayer(tonumber(self.src)).Functions.AddItem(item,amount,slot or false,info)
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.removeInventoryItem = function(item,amount,slot)
[ script:qb-inventory] QBCore.Functions.GetPlayer(tonumber(self.src)).Functions.RemoveItem(item, amount, slot or false)
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.getInventoryItem = function(item)
[ script:qb-inventory] local gi = QBCore.Functions.GetPlayer(tonumber(self.src)).Functions.GetItemByName(item) or {count = 0}
[ script:qb-inventory] gi.count = gi.amount or 0
[ script:qb-inventory] return gi
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.getGroup = function()
[ script:qb-inventory] return QBCore.Functions.IsOptin(self.src)
[ script:qb-inventory] end
[ script:qb-inventory] if xPlayer.source == nil then
[ script:qb-inventory] xPlayer.source = self.src
[ script:qb-inventory] end
[ script:qb-inventory] return xPlayer
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory]
[ script:qb-inventory] Inventory.AddItem = function(source,item,count,metadata,slot)
[ script:qb-inventory] if shared.inventory == 'ox_inventory' then
[ script:qb-inventory] return exports.ox_inventory:AddItem(source,item,count,metadata,slot)
[ script:qb-inventory] else
[ script:qb-inventory] if item == 'money' then
[ script:qb-inventory] local xPlayer = GetPlayerFromId(source)
[ script:qb-inventory] if not xPlayer then
[ script:qb-inventory] if not tonumber(source) then
[ script:qb-inventory] source = source:gsub('Hotdog:','')
[ script:qb-inventory] source = source:gsub('Burger:','')
[ script:qb-inventory] source = source:gsub('Taco:','')
[ script:qb-inventory] GetPlayerFromIdentifier(source).addAccountMoney('money',count)
[ script:qb-inventory] end
[ script:qb-inventory] return
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.addAccountMoney('money',count)
[ script:qb-inventory] else
[ script:qb-inventory] local added = exports['qb-inventory']:AddItem(source, item, count, slot, metadata)
[ script:qb-inventory] if not added then
[ script:qb-inventory] if not slot then
[ script:qb-inventory] local stash = exports['qb-inventory']:GetStashItems(source)
[ script:qb-inventory] slot = exports['qb-inventory']:GetFirstSlotByItem(stash, item, metadata)
[ script:qb-inventory] if not slot then
[ script:qb-inventory] for i = 1, 50 do
[ script:qb-inventory] if not stash[i] then
[ script:qb-inventory] slot = i
[ script:qb-inventory] break
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] exports['qb-inventory']:AddToStash(source, slot, otherslot, item, count, metadata)
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory]
[ script:qb-inventory] Inventory.RemoveItem = function(source,item,count,metadata,slot)
[ script:qb-inventory] if shared.inventory == 'ox_inventory' then
[ script:qb-inventory] return exports.ox_inventory:RemoveItem(source, item, count, metadata, slot)
[ script:qb-inventory] else
[ script:qb-inventory] if item == 'money' then
[ script:qb-inventory] local xPlayer = GetPlayerFromId(source)
[ script:qb-inventory] if not tonumber(source) then
[ script:qb-inventory] source = source:gsub('Hotdog:','')
[ script:qb-inventory] source = source:gsub('Burger:','')
[ script:qb-inventory] source = source:gsub('Taco:','')
[ script:qb-inventory] GetPlayerFromIdentifier(source).removeMoney('money',count)
[ script:qb-inventory] end
[ script:qb-inventory] xPlayer.removeMoney(count)
[ script:qb-inventory] else
[ script:qb-inventory] local removed = exports['qb-inventory']:RemoveItem(source, item, count, slot, metadata)
[ script:qb-inventory] if not removed then
[ script:qb-inventory] if not slot then
[ script:qb-inventory] local stash = exports['qb-inventory']:GetStashItems(source)
[ script:qb-inventory] slot = exports['qb-inventory']:GetFirstSlotByItem(stash, item, metadata)
[ script:qb-inventory] if not slot then
[ script:qb-inventory] for i = 1, 50 do
[ script:qb-inventory] if not stash[i] then
[ script:qb-inventory] slot = i
[ script:qb-inventory] break
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] exports['qb-inventory']:RemoveFromStash(source, slot, item, count, metadata)
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end
[ script:qb-inventory] end:141)
[ script:qb-inventory] > [global chunk] (@renzu_shops/server/main.lua:667)
[ script:qb-inventory] > handler (@ox_lib/callback/server.lua:75)
[ script:qb-inventory] > <unknown> (@oxmysql/dist/build.js:22252)
[ script:qb-inventory] > processTicksAndRejections (node:internal/process/task_queues:96)
[ script:renzu_shops] SCRIPT ERROR: [string "insertstr = 'INSERT INTO %s (%s) VALUES (%s)'..."]:141:
[ script:renzu_shops] An error occurred while calling export `AddToStash` in resource `qb-inventory`:
[ script:renzu_shops]
[ script:renzu_shops] ---
[ script:renzu_shops] > <unknown> (@oxmysql/dist/build.js:22252)
[ script:renzu_shops] > processTicksAndRejections (node:internal/process/task_queues:96)
[ script:renzu_shops]