Framework Module API Documentation โ
A multi-framework compatibility layer for RedM scripts. Supports VORP, RedEM, RedEM2023, QBR, and RSG frameworks.
Getting Started โ
-- Get framework instance
local framework = exports.bln_lib:framework()
Framework Class โ
framework:get() โ
Returns the current framework name.
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
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
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
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 addmoneyType
(number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
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 removemoneyType
(number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0
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 checkmoneyType
(number, optional): Money type (0 = cash, 1 = gold, 2 = rol). Defaults to 0removeIfCan
(boolean, optional): Remove money if user can afford. Defaults to false
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.
local ids = user:getIdentifiers()
-- Returns: { identifier = "steam:...", charid = 1 }
user:getJob() โ
Get user's job.
local job = user:getJob()
user:getJobGrade() โ
Get user's job grade information.
local grade = user:getJobGrade()
-- Returns: { level = 1, name = "jobname" }
user:getRPName() โ
Get user's roleplay name.
local name = user:getRPName()
-- Returns: "John Smith"
user:group() โ
Get user's permission group.
local group = user:group()
Inventory Management โ
framework:addItemInInventory(source, invId, item, quantity, metadata, needWait) โ
Add item to specified inventory.
Parameters:
source
(number): Player server IDinvId
(string): Inventory identifieritem
(string): Item namequantity
(number): Amount to addmetadata
(table): Item metadataneedWait
(boolean): Wait for database operation to complete
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 IDitem
(string): Item nameamount
(number): Amount to checkmeta
(table): Item metadata to matchremove
(boolean): Remove item if can use
local canUse = framework:canUseItem(1, "water", 1, {}, true)
framework:createInventory(invName, name, invConfig) โ
Create new custom inventory.
Parameters:
invName
(string): Inventory identifiername
(string): Display nameinvConfig
(table): Inventory configuration
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 IDinvId
(string): Inventory identifier
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 IDitem
(string): Item namequantity
(number): Amount to givemeta
(table): Item metadata
local given = framework:giveItem(1, "water", 1, {})
framework:openInventory(source, invName) โ
Open inventory for player.
Parameters:
source
(number): Player server IDinvName
(string): Inventory identifier
framework:openInventory(1, "chest_1")
framework:registerUseItem(item, closeAfterUsed, callback) โ
Register usable item with callback.
Parameters:
item
(string): Item namecloseAfterUsed
(boolean): Close inventory after usecallback
(function): Function to call when item used
framework:registerUseItem("water", true, function(source, itemData)
print("Player " .. source .. " used water")
end)
framework:removeInventory(invName) โ
Remove custom inventory.
Parameters:
invName
(string): Inventory identifier
framework:removeInventory("chest_1")
Events โ
Client Events โ
-- Money changed
AddEventHandler('bln_lib:c:MoneyChanged', function()
-- Called when player money changes in any framework
end)
Server Events โ
-- Player loaded
AddEventHandler('bln_lib:s:PlayerLoaded', function()
-- Called when player loads in any framework
end)