Skip to content

Framework Module API Documentation โ€‹

A multi-framework compatibility layer for RedM scripts. Supports VORP, RedEM, RedEM2023, QBR, and RSG frameworks.

Getting Started โ€‹

lua
-- Get framework instance
local framework = exports.bln_lib:framework()

Framework Class โ€‹

framework:get() โ€‹

Returns the current framework name.

lua
local frameworkName = framework:get()
-- Returns: "VORP", "RedEM", "RedEM2023", "QBR", or "RSG"

framework:is(name) โ€‹

Checks if current framework matches given name.

Parameters:

  • name (string): Framework name to check
lua
if framework:is('VORP') then
    -- VORP specific code
end

User Class โ€‹

framework:getUser(source) โ€‹

Get user instance for specified source.

Parameters:

  • source (number): Player server ID
lua
local user = framework:getUser(1)

user:getMoney(moneyType) โ€‹

Get user's money amount.

Parameters:

  • moneyType (number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
lua
local cash = user:getMoney(0)
local gold = user:getMoney(1)
local rol = user:getMoney(2)

user:addMoney(amount, moneyType) โ€‹

Add money to user.

Parameters:

  • amount (number): Amount to add
  • moneyType (number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
lua
user:addMoney(100) -- Add $100
user:addMoney(50, 1) -- Add 50 gold

user:removeMoney(amount, moneyType) โ€‹

Remove money from user.

Parameters:

  • amount (number): Amount to remove
  • moneyType (number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
lua
user:removeMoney(100) -- Remove $100
user:removeMoney(50, 1) -- Remove 50 gold

user:canBuy(price, moneyType, removeIfCan) โ€‹

Check if user can afford price and optionally remove money.

Parameters:

  • price (number): Amount to check
  • moneyType (number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
  • removeIfCan (boolean, optional): Remove money if user can afford. Defaults to false
lua
local canAfford = user:canBuy(100) -- Check if has $100
local bought = user:canBuy(100, 0, true) -- Check and remove if can afford

user:getIdentifiers() โ€‹

Get user identifiers.

lua
local ids = user:getIdentifiers()
-- Returns: { identifier = "steam:...", charid = 1 }

user:getJob() โ€‹

Get user's job.

lua
local job = user:getJob()

user:getJobGrade() โ€‹

Get user's job grade information.

lua
local grade = user:getJobGrade()
-- Returns: { level = 1, name = "jobname" }

user:getRPName() โ€‹

Get user's roleplay name.

lua
local name = user:getRPName()
-- Returns: "John Smith"

user:group() โ€‹

Get user's permission group.

lua
local group = user:group()

Inventory Management โ€‹

framework:addItemInInventory(source, invId, item, quantity, metadata, needWait) โ€‹

Add item to specified inventory.

Parameters:

  • source (number): Player server ID
  • invId (string): Inventory identifier
  • item (string): Item name
  • quantity (number): Amount to add
  • metadata (table): Item metadata
  • needWait (boolean): Wait for database operation to complete
lua
framework:addItemInInventory(1, "chest_1", "water", 1, {}, true)

framework:canUseItem(source, item, amount, meta, remove) โ€‹

Check if user can use item and optionally remove it.

Parameters:

  • source (number): Player server ID
  • item (string): Item name
  • amount (number): Amount to check
  • meta (table): Item metadata to match
  • remove (boolean): Remove item if can use
lua
local canUse = framework:canUseItem(1, "water", 1, {}, true)

framework:createInventory(invName, name, invConfig) โ€‹

Create new custom inventory.

Parameters:

  • invName (string): Inventory identifier
  • name (string): Display name
  • invConfig (table): Inventory configuration
lua
framework:createInventory("chest_1", "House Chest", {
    maxSlots = 50,
    maxWeight = 100,
    acceptWeapons = true,
    shared = true,
    ignoreStackLimit = true,
    whitelist = {
        {item = "gold", limit = 10}
    }
})

framework:getItemsFromInventory(source, invId) โ€‹

Get all items from specified inventory.

Parameters:

  • source (number): Player server ID
  • invId (string): Inventory identifier
lua
local items = framework:getItemsFromInventory(1, "chest_1")

framework:giveItem(source, item, quantity, meta) โ€‹

Give item to player if they can carry it.

Parameters:

  • source (number): Player server ID
  • item (string): Item name
  • quantity (number): Amount to give
  • meta (table): Item metadata
lua
local given = framework:giveItem(1, "water", 1, {})

framework:openInventory(source, invName) โ€‹

Open inventory for player.

Parameters:

  • source (number): Player server ID
  • invName (string): Inventory identifier
lua
framework:openInventory(1, "chest_1")

framework:registerUseItem(item, closeAfterUsed, callback) โ€‹

Register usable item with callback.

Parameters:

  • item (string): Item name
  • closeAfterUsed (boolean): Close inventory after use
  • callback (function): Function to call when item used
lua
framework:registerUseItem("water", true, function(source, itemData)
    print("Player " .. source .. " used water")
end)

framework:removeInventory(invName) โ€‹

Remove custom inventory.

Parameters:

  • invName (string): Inventory identifier
lua
framework:removeInventory("chest_1")

Events โ€‹

Client Events โ€‹

lua
-- Money changed
AddEventHandler('bln_lib:c:MoneyChanged', function()
    -- Called when player money changes in any framework
end)

Server Events โ€‹

lua
-- Player loaded
AddEventHandler('bln_lib:s:PlayerLoaded', function()
    -- Called when player loads in any framework
end)