-- GKS Tablet - ESX Framework Client Script if Config.Framework ~= "esx" then return end debugprint("Loading ESX Framework client script") local export, obj = pcall(function() return exports.es_extended:getSharedObject() end) if export then ESX = obj else while not ESX do TriggerEvent("esx:getSharedObject", function(obj) ESX = obj end) Wait(500) end end RegisterNetEvent("esx:playerLoaded", function(playerData) while not ESX.IsPlayerLoaded() do Wait(250) end debugprint("ESX player loaded, triggering tablet initialization") TriggerEvent('gkstablet:client:onCharacterSelected') end) function GetCharacterInfo() local data = { name = "Unknown", phoneNumber = "1234567890", birthDate = "1999-01-01", bank = 0, jobLabel = "Civilian", gradeLabel = "Unemployed", charLicenses = {}, jobName = "" } local PlayerData = ESX.GetPlayerData() if PlayerData then data.name = PlayerData.name data.phoneNumber = PlayerData.metadata.phoneNumber data.birthDate = PlayerData.dateofbirth data.jobLabel = PlayerData.job.label data.jobName = PlayerData.job.name data.gradeLabel = PlayerData.job.grade_label for _, account in pairs(PlayerData.accounts) do if account.name == "bank" then data.bank = account.money break end end local licenses = AwaitCallback("gkstablet:server:license:getLicenses") or {} debugprint("Loaded character licenses:", licenses) for licenseKey, license in pairs(licenses) do local key = nil if type(license) == "table" then key = license.label or license.type or license.name elseif type(licenseKey) == "string" and license then key = licenseKey elseif type(license) == "string" then key = license end if key then data.charLicenses[key] = true else debugprint("Unknown license key:", license) end end end return data end AddEventHandler('onResourceStart', function(resourceName) if GetCurrentResourceName() ~= resourceName then return end Wait(5000) if ESX.PlayerLoaded then local PlayerData = ESX.GetPlayerData() if not PlayerData then debugprint("ESX player data not found on resource start") return end debugprint("ESX player already loaded on resource start, triggering tablet initialization") TriggerEvent('gkstablet:client:onCharacterSelected') end end) function GetPlayerJob() local PlayerData = ESX.GetPlayerData() return PlayerData and PlayerData.job or nil end RegisterNetEvent('esx:setJob', function(job) ESX.PlayerData.job = job TriggerEvent('gkstablet:client:onJobUpdate', job) end)