Server bridge
The editable/bridge/server.lua
file must return a table with the following data:
return {
getPlayer: function;
addItem: function;
removeItem: function;
canSwapItem: function;
getSlot: function;
metadata: Metadata;
}
Pre-made bridges
- OX Inventory (stable)
- QB Inventory (experimental)
You can create your own inventory bridge by following the guide below.
If you need help, you can ask on our Discord in support ticket.
Explanation
For better understanding, check the pre-made bridges for reference.
getPlayer
Gets player object reference to be used in other functions.
// recieves
playerId: number; // aka "source"
// returns
return player: any; // this is then passed to other functions (later referred to as "Player" type)
addItem
Adds item to player’s inventory. Make sure to include metadata.
// recieves
player: Player; // player reference from getPlayer()
item: string; // item name
count: number; // count to be added
metadata?: table; // item metadata
slot?: number; // slot to add the item to
// returns
return success: boolean; // if the item was added successfully
removeItem
Removes item from player’s inventory. Make sure to include metadata.
// recieves
player: Player; // player reference from getPlayer()
item: string; // item name
count: number; // count to be added
metadata?: table; // remove item with matching metadata
slot?: number; // slot to remove the item from
// returns
return success: boolean; // if the item was removed successfully
canSwapItem
Checks whether item swap is possible based on the player’s inventory limits (weight, slots, etc).
This is similar to the typical “canCarryItem
” checks.
firstItem
is being removed, testItem
is being added (in terms of test).
// recieves
player: Player; // player reference from getPlayer()
firstItem: string; // item name
firstItemCount: number;
testItem: string; // item name
testItemCount: number;
// returns
return isPossible: boolean; // if the item swap is possible
getSlot
Gets item information about the item in specified slot.
// recieves
player: Player; // player reference from getPlayer()
slot: number; // slot to get item information from
// returns
return {
name: string; // item name
metadata: table; // item metadata
}: table;
metadata
Table that contains metadata keys for storing the item metadata.
{
preset: string; // metadata key used for storing preset name
id: string; // metadata key used for storing document id
title: string; // metadata key used for displaying document title
}
If preset
is set to 'type'
, then the preset name will be saved in metadata.type
.
metadata.type = 'MedicalReport'
Example for getPlayer
local QB = exports['qb-core']:GetCoreObject()
-- return QbPlayer object
local function getPlayer(playerId)
return QB.Functions.GetPlayer(playerId)
end
-- recieves QbPlayer object as "player"
local function addItem(player, item, count, metadata, slot)
return player.Functions.AddItem(item, count, slot, metadata)
end