Exports & Events
Exports, callbacks, and events for integrating with oxide-blackmarket.
Reference for integrating with oxide-blackmarket.
oxide-blackmarket uses Callback = olink.callback internally. Client callback usage assumes your resource already has access to the same o-link callback object.
Server Exports
Dealer state
local netId = exports['oxide-blackmarket']:GetDealerNetId()
local coords = exports['oxide-blackmarket']:GetDealerCoords()
local spawnCoords = exports['oxide-blackmarket']:GetDealerSpawnCoords()
local active = exports['oxide-blackmarket']:IsDealerActive()
local valid = exports['oxide-blackmarket']:IsDealerValid()
Returns:
GetDealerNetId() -> number|nilGetDealerCoords() -> vector3|nilGetDealerSpawnCoords() -> vector3|nilIsDealerActive() -> booleanIsDealerValid() -> boolean
Stock
local stock = exports['oxide-blackmarket']:GetDealerStock()
local qty = exports['oxide-blackmarket']:GetItemStock('weapon_pistol')
local ok = exports['oxide-blackmarket']:UpdateDealerStock('weapon_pistol', -1)
Returns:
GetDealerStock() -> tableGetItemStock(itemName) -> numberUpdateDealerStock(itemName, amount) -> boolean
Reputation
local rep = exports['oxide-blackmarket']:GetPlayerReputation(source)
local ok1 = exports['oxide-blackmarket']:SetPlayerReputation(source, 500)
local ok2 = exports['oxide-blackmarket']:AddPlayerReputation(source, 50)
local ok3 = exports['oxide-blackmarket']:RemovePlayerReputation(source, 100)
local ok4 = exports['oxide-blackmarket']:AddReputationWithNotify(source, 50)
local ok5 = exports['oxide-blackmarket']:RemoveReputationWithNotify(source, 100)
Returns:
GetPlayerReputation(source) -> numberSetPlayerReputation(source, amount) -> booleanAddPlayerReputation(source, amount) -> booleanRemovePlayerReputation(source, amount) -> booleanAddReputationWithNotify(source, amount) -> booleanRemoveReputationWithNotify(source, amount) -> boolean
Client Exports
Dealer and menu state
local entity = exports['oxide-blackmarket']:GetDealerEntity()
local active = exports['oxide-blackmarket']:IsDealerActive()
local inMenu = exports['oxide-blackmarket']:IsInMenu()
exports['oxide-blackmarket']:SetInMenu(true)
Returns:
GetDealerEntity() -> number|nilIsDealerActive() -> booleanIsInMenu() -> boolean
UI
exports['oxide-blackmarket']:OpenShopUI(shopData)
exports['oxide-blackmarket']:CloseShopUI()
exports['oxide-blackmarket']:UpdateShopUI('stock', { item = 'weapon_pistol', stock = 5 })
local isShopOpen = exports['oxide-blackmarket']:IsShopOpen()
local isNuiOpen = exports['oxide-blackmarket']:IsNUIOpen()
Returns:
IsShopOpen() -> booleanIsNUIOpen() -> boolean
Player state
local loggedIn = exports['oxide-blackmarket']:IsLoggedIn()
local isPolice = exports['oxide-blackmarket']:IsPlayerPolice()
Returns:
IsLoggedIn() -> booleanIsPlayerPolice() -> boolean
Server Callbacks
oxide-blackmarket:server:GetReputation
Callback.Trigger('oxide-blackmarket:server:GetReputation', function(data)
print(data.rep, data.tier, data.tierName)
end)
Return shape:
{
rep = number,
tier = number,
tierName = string
}
oxide-blackmarket:server:IsPlayerPolice
Callback.Trigger('oxide-blackmarket:server:IsPlayerPolice', function(isPolice)
print(isPolice)
end)
Returns boolean.
oxide-blackmarket:server:GetPed
Callback.Trigger('oxide-blackmarket:server:GetPed', function(netId, coords)
print(netId, coords)
end)
Returns:
netId: number|nilcoords: vector3|nil
Client Events
Dealer
oxide-blackmarket:client:SpawnDealer(netId, coords)oxide-blackmarket:client:DespawnDealer(netId?)oxide-blackmarket:client:SpawnHitSquad(coords)
Reputation
oxide-blackmarket:client:TierChanged(newTier, newTierName)oxide-blackmarket:client:TierUp(tierName)oxide-blackmarket:client:TierDown(tierName)oxide-blackmarket:client:ReputationLost()
Shop
oxide-blackmarket:client:OpenShop(shopData)oxide-blackmarket:client:TransactionResult(success, message, updateData)
shopData contains:
{
playerRep = number,
playerTier = number,
tierName = string,
playerCash = number,
buyInventory = table,
sellInventory = table,
enableTiers = boolean
}
Loot
oxide-blackmarket:client:SpawnLoot(coords, lootId)oxide-blackmarket:client:RemoveLootBag(lootId)oxide-blackmarket:client:LootCollected()
Pager
oxide-blackmarket:client:PagerSending()oxide-blackmarket:client:PagerResult(success, message, coords, spawnCoords)oxide-blackmarket:client:SetDealerWaypoint(data)
Pager result behavior:
- Tier 2-3 success sends
message = nil,coords = nil, andspawnCoords = vector3 - Tier 4 success sends
message = string,coords = vector3, andspawnCoords = nil - Failure sends
message = string
Server Events
Dealer and arrest
TriggerServerEvent('oxide-blackmarket:server:DealerKilled', deathCoords, wasSurrendered)
TriggerServerEvent('oxide-blackmarket:server:ArrestDealer', netId)
Notes:
deathCoordsis sent by the client but the server uses the live dealer entity coordswasSurrenderedchanges the reduced police payout path
Shop
TriggerServerEvent('oxide-blackmarket:server:RequestShop')
TriggerServerEvent('oxide-blackmarket:server:Purchase', itemName, quantity)
TriggerServerEvent('oxide-blackmarket:server:Sell', itemName, quantity)
Loot
TriggerServerEvent('oxide-blackmarket:server:CollectLoot', lootId)
Integration Examples
Grant blackmarket rep from another resource
RegisterNetEvent('my-heist:server:completed', function()
local src = source
exports['oxide-blackmarket']:AddReputationWithNotify(src, 100)
end)
Check whether the dealer is currently up
local function getDealerLocation()
if not exports['oxide-blackmarket']:IsDealerValid() then
return nil
end
return exports['oxide-blackmarket']:GetDealerCoords()
end
Use current dealer stock in another script
local function canBuyFromDealer(itemName, quantity)
return exports['oxide-blackmarket']:GetItemStock(itemName) >= quantity
end