Server
OpenCraft
exports["tgiann-inventory"]:OpenCraft(src, categoryName)
src
number
Player source id
categoryName
string
Category name in configCraft.lua
OpenInventoryById
exports["tgiann-inventory"]:OpenInventoryById(playerSrc, targetSrc, showClothe)
playerSrc
number
Player source id
targetSrc
number
Target player source id
showClothe
boolean
Show target's clothing inventory
ForceOpenInventoryById
Ignores config.searchPlayer
settings when opening another player's inventory.
exports["tgiann-inventory"]:ForceOpenInventoryById(playerSrc, targetSrc, showClothe)
playerSrc
number
Player source id
targetSrc
number
Target player source id
showClothe
boolean
Show target's clothing inventory
OpenShop
exports["tgiann-inventory"]:OpenShop(src, shopName)
src
number
Player source id
shopName
string
Products key name in configShop.lua
OpenInventory | ForceOpenInventory
Force Open Inventory has been added for those converting from Ox Inventory. Essentially, it works the same as OpenInventory, but it opens the inventory without considering values such as passwords.
Perhaps in the future, I'll migrate most functions to RegisterInventory. At that point, many of the current arguments will become obsolete, resulting in a more stable system.
exports["tgiann-inventory"]:OpenInventory(src, invType, invId, invData, openType)
exports["tgiann-inventory"]:ForceOpenInventory(src, invType, invId, invData, openType)
src
number
invType
"glovebox" | "trunk" | "stash" | "shop" | "drop" | "crafting" | "otherplayer"
invId
"playerid" | "name" | "plate"
invData
{ maxWeight: number, slots: number, whitelist: string[], blacklist: string[], label: string, maxAmount: { [key:string]: number } }
openType
{ isPlayer: boolean, password: string }
Examples
exports["tgiann-inventory"]:ForceOpenInventory(source, "stash", "gang12", {
maxWeight = 10000,
slots = 10,
whitelist = {"bandage", "item2"}
label = "Gang Stash",
maxAmount: { bandage = 5 }
}, {
isPlayer: false,
password: "1234"
})
exports["tgiann-inventory"]:ForceOpenInventory(source, "stash", "gang12", {
maxWeight = 10000,
slots = 10,
label = "Gang Stash",
})
exports["tgiann-inventory"]:ForceOpenInventory(source, "otherplayer", otherSource)
exports["tgiann-inventory"]:ForceOpenInventory(source, "trunk", "PLATE123")
RegisterStash
exports["tgiann-inventory"]:RegisterStash(invId, label, slots, maxweight, owner, groups, coords, blacklist, whitelist)
invId
string
playerid | name | plate
label
string
Inventory label
slots
number
Slot amount
maxweight
number
Max weight
owner
boolean
If true, the inventory is saved to the first player to open it.
groups
boolean
back compatibility for ox inv (currently not used)
coords
vector3
back compatibility for ox inv (currently not used)
blacklist
table
Blacklist items
ex: {"bandage", "item2"}
whitelist
table
Whitelist items ex: {"bandage", "item2"}
LoadInventory
exports["tgiann-inventory"]:LoadInventory(src)
Return :
items
table
Parameters :
src
int
Player source id
Example
PlayerData.items = exports["tgiann-inventory"]:LoadInventory(source)
SaveInventory
exports["tgiann-inventory"]:SaveInventory(src)
Parameters :
src
int
Player source id
SetInventory
exports["tgiann-inventory"]:SetInventory(src, items)
Parameters :
src
int
Player source id
items
table
Player New Items
GetItemList | Items
Optionally takes the name of an item, returning only data for that item
exports["tgiann-inventory"]:GetItemList()
exports["tgiann-inventory"]:Items()
itemName?
string
Return :
Item list or Item Data
table
Example
local allItems = exports["tgiann-inventory"]:GetItemList()
local allItems = exports["tgiann-inventory"]:Items()
local bandage = exports["tgiann-inventory"]:GetItemList("bandage")
local bandage = exports["tgiann-inventory"]:Items("bandage")
GetItemLabel
exports["tgiann-inventory"]:GetItemLabel(item)
Return :
İtem label
string
Parameters :
item
string
Item spawn name
Example
local label = exports["tgiann-inventory"]:GetItemLabel("bandage")
GetItem
Returns generic item data from the specified inventory, with the total count.
exports["tgiann-inventory"]:GetItem(src, item, metadata, returnsAmount)
Return :
amount or item
number | table
Parameters :
src
int
Player Source
item
string | table
item name or table
metadata?
table
Only returns the count of items that strictly match the given metadata.
retırms
boolean
If true, returns a value as a number.
Example
GetPlayerItems
exports["tgiann-inventory"]:GetPlayerItems(src)
Return :
player items
table
Parameters :
src*
int
Player Source
Example
local src = source
local playerItems = exports["tgiann-inventory"]:GetPlayerItems(src)
GetPlayerClotheItems
exports["tgiann-inventory"]:GetPlayerClotheItems(src)
Return :
Player clothe items
table
Parameters :
src*
int
Player Source
Example
local src = source
local playerClotheItems = exports["tgiann-inventory"]:GetPlayerClotheItems(src)
GetTotalWeight
exports["tgiann-inventory"]:GetTotalWeight(items)
Return :
weight
int
Parameters :
items*
table
İtem list with amount
Example
local items = {
["1"] = { item = "bandage", amount = 5},
["4"] = { item = "arrow", amount = 2},
}
local weight = exports["tgiann-inventory"]:GetTotalWeight(items)
return weight < 10
GetFreeWeight
exports["tgiann-inventory"]:GetFreeWeight(src)
Return :
Free weight
int
Parameters :
src
int
Player source id
Example
local freeWeight = exports["tgiann-inventory"]:GetFreeWeight(src)
return freeWeight > 0
GetSlotsByItem
A table containing the slots where the item was found.
exports["tgiann-inventory"]:GetSlotsByItem(items, item)
Return :
slotsByItems
table
Parameters :
items
table
Table The table containing the items.
itemName
string
string The name of the item to search for.
GetFirstSlotByItem
The slot number of the first matching item, or nil if no match is found.
exports["tgiann-inventory"]:GetFirstSlotByItem(items, itemName)
Return :
SlotNumber
int or nil
Parameters :
items
table
The table of items to search through.
itemName
string
The name of the item to search for.
SetItem
exports["tgiann-inventory"]:SetItem(source, item, amount)
Return :
success
boolen
Parameters :
source*
table
Player source
item*
string
item spawn name
amount*
int
the amount of item to set
Example
local src = source
local metadata = {
local success = exports["tgiann-inventory"]:SetItem(src, "bandage", 15)
if success then
print("item set success")
end
AddItem
exports["tgiann-inventory"]:AddItem(source, item, amount, slot, metadata, isClotheSlot)
Return :
success
boolen
Parameters :
source*
table
Player source
item*
string
item spawn name
amount*
int
the amount of item to add
slot
int
slot number
metadata
table
metadata of the item modify
isClotheSlot
boolen
adds item to clothe slots
Example
local src = source
local metadata = {
level = 2
}
local success = exports["tgiann-inventory"]:AddItem(src, "bandage", 2, nil, metadata, false)
if success then
print("item added")
end
RemoveItem
exports["tgiann-inventory"]:RemoveItem(source, item, amount, slot, metadata)
Return :
success
boolen
Parameters :
source*
table
Player source
item*
string
item spawn name
amount*
int
the amount of item to add
slot
iny
slot number
metadata
table
item metadata value
Example
local src = source
local itemData = exports["tgiann-inventory"]:GetItemByName(src, "bandage")
if itemData.amount > 0 then
local success = exports["tgiann-inventory"]:RemoveItem(src, "bandage", 1, itemData.key)
if success then
print("item added")
end
end
CloseInventory
CloseInventory function closes the player inventory
exports["tgiann-inventory"]:CloseInventory(source)
source
int
Player source
CanCarryWeight
Returns if inventory can carry specified weight and free inventory weight.
exports["tgiann-inventory"]:CanCarryWeight(source, weight)
Return :
success
boolen
Parameters :
source
int
Player source
weight
int
Weight number
CanCarryItem / CanAddItem
exports["tgiann-inventory"]:CanCarryItem(source, item, amount)
exports["tgiann-inventory"]:CanAddItem(source, item, amount)
Return :
success
boolen
Parameters :
source
int
Player source
item*
string
item spawn name
amount*
int
the amount of item to check
Example
local src = source
local canCarry = exports["tgiann-inventory"]:CanCarryItem(src, "bandage", 100)
if canCarry then
exports["tgiann-inventory"]:AddItem(src, "bandage", 100)
end
CanCarryItems
exports["tgiann-inventory"]:CanCarryItems(source, items)
Return :
success
boolen
Parameters :
source
int
Player source
items*
table
items table
amount*
int
the amount of item to check
Example
local src = source
local items = {
{name = "bandage", amount = "3"},
{name = "gold", amount = "1"},
}
local canCarry = exports["tgiann-inventory"]:CanCarryItems(src, items)
if canCarry then
for i=1, #items do
exports["tgiann-inventory"]:AddItem(src, items[i].name, items[i].amount)
end
end
ClearInventory
exports["tgiann-inventory"]:ClearInventory(source, filterItems)
source
int
Player source
filterItems
null | string | string[]
item name
GetItemByName
exports["tgiann-inventory"]:GetItemByName(source, item, metadata)
Return :
Player Item
table
Parameters :
source
int
Player source
item
string
Item spawn name
metadata
table
Item metadata value
Example
local src = source
local itemData = exports["tgiann-inventory"]:GetItemByName(src, "bandage")
if itemData.amount > 0 then
exports["tgiann-inventory"]:RemoveItem(src, "bandage", itemData.amount)
end
GetItemsByName
exports["tgiann-inventory"]:GetItemsByName(source, name, metadata)
Return :
Player Items
Table
Parameters :
source
int
Player source
name
string
Item name
metadata
table
Item metadata value
Example
local src = source
local items = exports["tgiann-inventory"]:GetItemsByName(src, "bandage")
for i=1, #items do
local itemData = items[i]
exports["tgiann-inventory"]:RemoveItem(src, itemData.name, itemData.amount)
end
GetItemBySlot
exports["tgiann-inventory"]:GetItemBySlot(source, slot, metadata)
Return :
Player Items
Table
Parameters :
source
int
Player source
slot
int
Slot number
metadata
table
Item metadata value
Example
local src = source
local slot = 1
local itemData = exports["tgiann-inventory"]:GetItemBySlot(src, slot)
if itemData.amount > 0 then
exports["tgiann-inventory"]:RemoveItem(src, itemData.name, itemData.amount)
end
GetItemCount
The total count of the specified items.
exports["tgiann-inventory"]:GetItemCount(source, items)
Return :
count
int | nil
The total count of the specified items.
Parameters :
source
int
The player's source ID.
items
table | string
The items to count. Can be either a table of item names or a single item name.
HasItem
exports["tgiann-inventory"]:HasItem(src, items, amount)
Return :
Player has the item
boolen
Parameters :
src*
int
Player source
items*
table or string
The items to check, either a string, array of strings or a key-value table of a string and number with the string representing the name of the item and the number representing the amount
amount
int
The amount of the item to check for, this will only have effect when items is a string or an array of strings
Example
local src = source
local has1 = exports["tgiann-inventory"]:HasItem(src, "bandage", 2)
local has2 = exports["tgiann-inventory"]:HasItem(src, {"bandage", "armor"}, 2)
RepairWeapon
exports["tgiann-inventory"]:RepairWeapon(src, slot, value)
Return :
Is success
boolen
Parameters :
src*
int
Player source
slot*
int
Slot number
value
int
Repair values. Mix: 0, Max 100
Example
local src = source
local playerItems = exports["tgiann-inventory"]:GetPlayerItems(src)
for slot, itemData in pairs(playerItems) do
if item.name == "weapon_pistol" then
exports["tgiann-inventory"]:RepairWeapon(src, slot, 100)
end
end
CreateCustomStashWithItem
Custom creates stash inventory
exports["tgiann-inventory"]:CreateCustomStashWithItem(stashUniqId, items)
Return :
stashUniqId
string
items
item list
Parameters :
stashUniqId
string
Stash name
items
table
item list
Example
--Server
local items = {
{
name = "bandage"
amount = 2,
},
{
name = "waeapon_pistol"
amount = 2,
info = {
ammo = 500
}
},
}
exports["tgiann-inventory"]:CreateCustomStashWithItem("airdrop_1", items)
--Client
TriggerServerEvent("tgiann-inventory:server:OpenInventory", "stash", "airdrop_1")
GetItemByNameFromSecondaryInventory
Returns the data of the item in the stash
exports["tgiann-inventory"]:GetItemByNameFromSecondaryInventory(invType, invName, item, metadata)
Return :
itemData
table
Parameters :
invType
string
stash, trunk or glovebox
invName
string
Inventory name, id or plate
item
string
Item spawn name
metadata
table
Example
local itemData = exports["tgiann-inventory"]:GetItemByNameFromSecondaryInventory("stash", "airdrop_01", "bandage")
return itemData.amount > 0
GetSecondaryInventoryItems
Returns the data of the items in the stash
exports["tgiann-inventory"]:GetSecondaryInventoryItems(invType, invName)
Return :
Items
table
Parameters :
invType
string
stash, trunk or glovebox
invName
string
Inventory name, id or plate
Example
local itemsData = exports["tgiann-inventory"]:GetSecondaryInventoryItems("stash", "airdrop_01", "bandage")
RemoveItemFromSecondaryInventory
Delete items from stash
exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory(invType, invName, item, amount, slot, metadata)
Return :
success
boolen
Parameters :
invType
string
stash, trunk or glovebox
invName
string
Inventory name, id or plate
item
string
item spawn name
amount
int
the amount of item to add
slot
int
Slot number
metadata
table
Example
local src = source
local stashId = "airdrop_01"
local itemData = exports["tgiann-inventory"]:GetItemByNameFromSecondaryInventory("stash", stashId, "bandage")
if itemData.amount > 0 then
local success = exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory("stash", stashId, "bandage", 1, itemData.slot)
if success then
print("item removed")
end
end
AddItemToSecondaryInventory
Add items from stash
exports["tgiann-inventory"]:AddItemToSecondaryInventory(invType, invName, item, amount, slot, metadata)
Return :
success
boolen
Parameters :
invType
string
stash, trunk or glovebox
invName
string
Inventory name, id or plate
item
string
item spawn name
amount
int
the amount of item to add
slot
int
Slot number
metadata
table
Example
local src = source
local stashId = "airdrop_01"
local success = exports["tgiann-inventory"]:AddItemToSecondaryInventory("stash", stashId, "bandage", 1)
if success then
print("item added")
end
UpdateItemMetadata / SetItemData
Updates the item's info data
exports["tgiann-inventory"]:UpdateItemMetadata(src, item, slot, metadata)
exports["tgiann-inventory"]:SetItemData(src, item, slot, metadata)
Return : None
Parameters :
src*
string
Stash uniq name
item*
string
item spawn name
slot*
string
Slot number
metadata*
table
Item new metadata
Example
local src = source
local itemData = exports["tgiann-inventory"]:GetItemByName(src, "weapon_pistol")
local newMetadata = {
ammo = 200
}
exports["tgiann-inventory"]:UpdateItemMetadata(src, "weapon_pistol", itemData.slot, newMetadata)
DeleteInventory
deletes all data of the inventory
exports["tgiann-inventory"]:DeleteInventory(invType, invId)
Return : None
Parameters :
invType*
string
trunk, glovebox, stash
invId*
string
Inventory uniq name or plate
Example
exports["tgiann-inventory"]:DeleteInventory("stash", "airdrop_01")
exports["tgiann-inventory"]:DeleteInventory("glovebox", "TL001TL")
GiveClotheItem
exports["tgiann-inventory"]:GiveClotheItem(src, model, itemName, data, isClotheSlot)
Return : None
Parameters :
src*
int
Player source
model*
int
Player model (joaat("mp_f_freemode_01") or joaat("mp_m_freemode_01") )
itemName*
string
Clothe items
data*
table
Clothes data
isClotheSlot
bool
Add the item to the clothing slot
Example
local src = source
local model = joaat("mp_f_freemode_01")
--[[
0: Helmet - Hat (c_helmet) (Prop)
1: Mask (c_mask)
1: Glasses (c_glasses) (Prop)
2: Ear (c_ear) (Prop)
4: Pants (c_pants)
5: Bag (c_bag)
6: Shoes (c_shoes)
6: Watch (c_watch) (Prop)
7: Chain (c_necklace)
7: Bracelets (c_bracelet) (Prop)
9: Kevlar (c_bproof)
10: Decals (c_decal)
3: Arms (c_torso)
8: Tshirt (c_torso)
11: Torso (c_torso)
]]--
exports["tgiann-inventory"]:GiveClotheItem(src, model, "c_shoes", {
["6"] = { --shoes
Prop = 26,
Texture = 0
}
}, false)
exports["tgiann-inventory"]:GiveClotheItem(src, model, "c_torso", {
["3"] = { --arms
Prop = 3,
Texture = 0
},
["8"] = { --Tshirt
Prop = 14,
Texture = 0
},
["11"] = { --Torso
Prop = 60,
Texture = 0
}
}, false)
exports["tgiann-inventory"]:GiveClotheItem(src, model, "c_pants", {
["4"] = { --pants
Prop = 39,
Texture = 0
},
}, false)
RegisterShop
exports["tgiann-inventory"]:RegisterShop(shopName, items)
Return : None
Parameters :
shopName*
string
Uniq shop name
items*
table
item list
Example
local items = {
{ name = 'beer', price = 7, amount = 50, type = 'item' },
{ name = 'whiskey', price = 10, amount = 50, type = 'item' },
{ name = 'vodka', price = 12, amount = 50, type = 'item' },
}
exports["tgiann-inventory"]:RegisterShop("policeshop2", items)
RegisterCraft
exports["tgiann-inventory"]:RegisterCraft(category, label, items)
Return : None
Parameters :
category*
string
Uniq crafting category
label*
string
Crafting menu label
items*
table
item list
Example
local items = {
{ name = 'beer', price = 7, amount = 50, type = 'item' },
{ name = 'whiskey', price = 10, amount = 50, type = 'item' },
{ name = 'vodka', price = 12, amount = 50, type = 'item' },
}
exports["tgiann-inventory"]:RegisterCraft("policecraft", "Fake Police Crafting", items)
RegisterJobCraft
exports["tgiann-inventory"]:RegisterJobCraft(jobName, label, items)
Return : None
Parameters :
jobName*
string
Job name
label*
string
Crafting menu label
items*
table
item list
Example
local items = {
{ name = 'beer', price = 7, amount = 50, type = 'item' },
{ name = 'whiskey', price = 10, amount = 50, type = 'item' },
{ name = 'vodka', price = 12, amount = 50, type = 'item' },
}
exports["tgiann-inventory"]:RegisterJobCraft("police", "Fake Police Crafting", items)
OpenInventoryById
Opens the inventory of a player by their ID
exports["tgiann-inventory"]:OpenInventoryById(src, targetSrc)
Parameters :
src
int
The player's server ID.
targetSrc
int
The ID of the player whose inventory will be opened.
OpenShop
exports["tgiann-inventory"]:OpenShop(src, shopName)
Parameters :
src
int
The player's server ID.
shopName
string
The name of the shop to open.
SetMaxWeight
exports["tgiann-inventory"]:SetMaxWeight(src, maxWeight)
Parameters :
src
int
The player's server ID.
maxWeight
int
New max weight value
Search
Searches the inventory for an item, or list of items, with the result varying based on the first argument.
exports["tgiann-inventory"]:Search(src, search, item, metadata)
Parameters :
src
number
Player source id
search
string
slots | count
item
string
Item name
metadata?
table
Item metadata for search
Example
local count = exports["tgiann-inventory"]:Search(source, 'count', 'bandage')
print('bandage count: '..count)
local items = exports["tgiann-inventory"]:Search(source, 'count', {'bandage', 'medikit'})
if items then
for name, count in pairs(items) do
print(name..' count: '..count)
end
end
local waterSlots = exports["tgiann-inventory"]:Search(source, 'slots', 'water')
print(json.encode(waterSlots))
UpdateVehicle
Update the internal reference to vehicle stashes, without triggering a save or updating the database.
exports["tgiann-inventory"]:UpdateVehicle(oldPlate, newPlate)
SaveAllInventory
This export allows you to save all currently unsaved inventories to the database.
exports["tgiann-inventory"]:SaveAllInventory()
CustomDrop
Drops can be created from other resources, containing a variety of items and utilising a custom label
exports["tgiann-inventory"]:CustomDrop(prefix, items, coords, slots, maxWeight, instance)
Parameters :
prefix
sring
Drop name
items
table
Items table
coords
vector3
Drop coords
slot?
number
Drop slot amount
maxWeight?
number
Drop max weight
instance?
number | string
Bucket number
Example
exports["tgiann-inventory"]:CustomDrop('copyOX', {
{'meat', 5, { grade = 2, type = 'deer' }},
{'hide', 5, { grade = 2, type = 'deer' }}
}, vector3(250.5, 350.5, 10.0))
CreateDropFromPlayer
Creates a new drop with the contents of a player's inventory.
eexports["tgiann-inventory"]:CreateDropFromPlayer(source)
Parameters :
source
number
Player id
Last updated