Inventories

inventories.lua

These functions manage inventory locking, item checking, and player inventory retrieval.

lockInv(toggle)

Locks or unlocks the player's inventory.

Freezes/unfreezes movement and toggles hotbar state.

Example:

lockInv(true)  -- Lock inventory
lockInv(false) -- Unlock inventory

hasItem(items, amount, src)

Checks if a player has the specified item(s) in sufficient quantity.

Returns:

  • boolean: Whether the player has the item(s).

  • table: Details of available item counts.

Example:

local hasAll, details = hasItem({"health_potion", "mana_potion"}, 2, playerId)
if hasAll then
    -- Proceed with action
else
    -- Inform the player about missing items
end

getPlayerInv(src)

Retrieves the player’s current inventory.

May be used for inventory UI, logging, or crafting systems.

Example:

local inventory = getPlayerInv(playerId)
for k, item in pairs(inventory) do
    print(item.name, item.amount)
end

itemcontrol.lua

This module includes a variety of utility functions for managing items in player inventories, including giving, removing, durability, and use logic.

createUseableItem(item, funct)

Registers a useable item and binds it to a callback function.

Example:

createUseableItem("bandage", function(source)
    -- Heal logic here
end)

invImg(item)

Returns the inventory image path for an item.

Automatically grabs the inventory image link based on inventory script

Example:

local imagePath = invImg("water_bottle")
print(imagePath)

addItem(item, amount, info, src)

Adds a specific amount of an item to a player's inventory.

Automatically attempts to add items using detected inventory script

Example:

-- Client Side
addItem("lockpick", 3, {})

-- Server Side
addItem("lockpick", 3, {}, source)

removeItem(item, amount, src, slot)

Removes a specific amount of an item from a player’s inventory.

Automatically attempts to remove item using detected inventory script

Example:

-- Client Side
removeItem(
    "ammo_pistol",
    30,
    nil,
    slot --[[optional]]--
)

-- Server Side
removeItem(
    "ammo_pistol",
    30,
    source,
    slot --[[optional]]--
)

dupeWarn(src, item, amount)

Logs or handles a potential duplication exploit involving an item.

This is called automatically if a player has been triggered exploit detection

Disabled if debugMode is enabled


breakTool(data)

Breaks a tool or item, often due to exceeding durability.

Example:

breakTool({ item = "drill", damage = 10 })

getDurability(item)

Returns the current durability value of a given item.

Searched for the lowest slot number (eg. slot 1) and retreives that items durability

Example:

local durability, slot = getDurability("drill")
if durability then
    print("Durability:", durability)
    print("Slot:", slot)
end

canCarry(itemTable, src)

Checks if a player can carry the item(s) specified in itemTable.

Example:

local carryCheck = canCarry({ ["health_potion"] = 2, ["mana_potion"] = 3 }, playerId)
if carryCheck["health_potion"] and carryCheck["mana_potion"] then
    -- Player can carry items.
else
    -- Notify player.
end

Last updated