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.

esx.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 ~= "esx" then
    return
end

Citizen.CreateThreadNow(function()
    if Config.Framework == "esx" then
        while esx == nil do
            esx = exports["es_extended"]:getSharedObject()
        end
        while esx.GetPlayerData().job == nil do
            Wait(10)
        end
    end
    PlayerData = esx.GetPlayerData()
    PlayerJob = PlayerData.job
    if Config.RequireJob then
        if Config.LumberJackJob[PlayerData.job.name] then
            CanInteract = true
        else
            CanInteract = false
        end
    else
        CanInteract = true
    end
end)

RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer)
    esx.PlayerLoaded = true
    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()
    if CanInteract then
        LoadBlips()
    end
end)

RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', 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
    if CanInteract then
        LoadBlips()
    end
end)

function TriggerServerCallback(name, cb, ...)
    esx.TriggerServerCallback(name, cb, ...)
end