AWS DEVELOPMENT / DOCUMENTATION

Your server. Our expertise.

Everything you need to install, configure and build.

94 guides • 11 resources • Always here to help
About resource versions

These guides include the original resource names. Use the folder and SQL names supplied with your downloaded version. A renamed AWS package may differ from the original EXIT release.

qb.lua

function DependencyCheck(data)
    for k, v in pairs(data) do
        if GetResourceState(k):find('started') ~= nil then
            return v
        end
    end
    return false
end

local frameworks = {
    ['es_extended'] = 'esx',
    ['qb-core'] = 'qb',
    ['qbx_core'] = 'qb'
}

Config.Framework = DependencyCheck(frameworks) or 'none'


if Config.Framework ~= "qb" then
    return
end

Citizen.CreateThreadNow(function()
    if Config.Framework == "qb" then
        QBCore = exports['qb-core']:GetCoreObject()
        while QBCore.Functions.GetPlayerData().job == nil do
            Wait(10)
        end
        PlayerData = QBCore.Functions.GetPlayerData()
        Wait(200)
        if Config.RequireJob then
            if Config.LumberJackJob[PlayerData.job.name] then
                CanInteract = true
            else
                CanInteract = false
            end
        else
            CanInteract = true
        end
    end
end)

---@OnPlayerLoaded event for qb
AddEventHandler('QBCore:Client:OnPlayerLoaded', function(Player)
    Player = QBCore.Functions.GetPlayerData()
    if not Player then return Wait(1250) end
    PlayerData = Player
    PlayerJob = PlayerData.job
    PlayerLoaded = true
    for _, object in pairs(AllObjects) do
        if object then
            DeleteEntity(object)
        end
    end
    if Peds.pedManager then
        DeleteEntity(Peds.pedManager)
    end
    Wait(2000)
    CreateObjects()
    LoadBlips()
end)

---@OnJobUpdate event for qb
RegisterNetEvent('QBCore:Client:OnJobUpdate')
AddEventHandler('QBCore:Client:OnJobUpdate', function(job)
    PlayerData.job = job
    PlayerJob = job
    for _, blip in pairs(CreatedBlips) do
        RemoveBlip(blip)
    end
    if Config.RequireJob then
        if Config.LumberJackJob[PlayerData.job.name] then
            CanInteract = true
        else
            CanInteract = false
        end
    else
        CanInteract = true
    end
    UpdateTargetOptions()
    LoadedBlips = nil
    LoadBlips()
end)

---@TriggerServerCallback event for qb.
function TriggerServerCallback(name, cb, ...)
    QBCore.Functions.TriggerCallback(name, cb, ...)
end