Skip to main content
The Inventory component manages character inventories, item storage, weights, and item operations. It’s one of the most complex and frequently used components in Mythic Framework.

Overview

Access via Inventory (server-side only).

Slot-Based System

Grid inventory with configurable slot count

Weight Management

Item weight and max capacity limits

Item Metadata

Custom data per item instance

Multiple Inventories

Character, vehicle, stash, shop inventories
Server-Side Only: All inventory operations must be performed on the server. Never attempt to modify inventory from the client.

Inventory Management

Items:GetCounts

Get item counts for an inventory.
number
required
Owner identifier (Character SID for personal inventory)
number
required
Inventory type (1 = personal, other values for stashes/vehicles)
table
Table of item name → count pairs
Examples:

Create

Create a new inventory for a character.
number
required
Character SID
number
default:"50"
Maximum number of inventory slots
number
default:"100"
Maximum weight capacity
Examples:

Delete

Delete an inventory permanently.
number
required
Character SID
Examples:

Item Operations

AddItem

Add an item to an inventory.
number
required
Owner identifier (Character SID for personal inventory)
string
required
Item identifier (e.g., ‘water’, ‘phone’, ‘weapon_pistol’)
number
default:"1"
Quantity to add
table
Custom item metadata (serial number, durability, etc.)
number
default:"1"
Inventory type (1 = personal)
boolean
true if item was added successfully
number|nil
Slot where item was added, or nil if failed
Examples:

Items:Remove

Remove an item from an inventory by item name.
number
required
Owner identifier (Character SID for personal inventory)
number
required
Inventory type (1 = personal)
string
required
Item identifier to remove
number
default:"1"
Quantity to remove
Examples:

Items:Has

Check if an inventory has a specific item in sufficient quantity.
number
required
Owner identifier (Character SID for personal inventory)
number
required
Inventory type (1 = personal)
string
required
Item identifier
number
default:"1"
Required quantity
boolean
true if inventory has the item in sufficient quantity
Examples:

Items:GetCount

Get the count of a specific item in an inventory.
number
required
Owner identifier
number
required
Inventory type (1 = personal)
string
required
Item identifier
number
Total count of the item across all slots
Examples:

GetItemInSlot

Get the item in a specific slot.
number
required
Character SID
number
required
Slot number
table|nil
Item data or nil if slot is empty
Examples:

MoveItem

Move an item from one slot to another.
number
required
Character SID
number
required
Source slot
number
required
Destination slot
number
Amount to move (moves all if not specified)
Examples:

Weight Management

GetWeight

Get the current weight of an inventory.
number
required
Character SID
number
Total weight of all items in inventory
Examples:

GetEmptySlots

Get all empty slots in an inventory.
number
required
Character SID
table
Array of empty slot numbers
Examples:

Items:GetFirst

Get the first instance of an item in an inventory.
number
required
Owner identifier
number
required
Inventory type (1 = personal)
string
required
Item identifier
table|nil
First item instance found, or nil if not found
Examples:

Items:GetAll

Get all instances of an item in an inventory.
number
required
Owner identifier
number
required
Inventory type (1 = personal)
string
required
Item identifier
table
Array of all item instances found
Examples:

Items:Use

Use an item in a specific slot.
number
required
Owner identifier
number
required
Inventory type (1 = personal)
number
required
Slot number of item to use
Examples:

Best Practices

❌ Bad:
✅ Good:

Next Steps

Inventory - Events

Inventory-related events

Inventory - Item Definition

Item data structure and definitions

Characters API

Character management

Items System

Using and creating items
Performance Tip: Inventory operations update the database. For bulk operations (giving many items at once), consider batching updates or using transactions where possible.