ESX.Players = {} ESX.Jobs = {} ESX.Items = {} Core = {} Core.JobsPlayerCount = {} Core.UsableItemsCallbacks = {} Core.RegisteredCommands = {} Core.Pickups = {} Core.PickupId = 0 Core.PlayerFunctionOverrides = {} Core.DatabaseConnected = false Core.playersByIdentifier = {} Core.JobsLoaded = false ---@type table Core.vehicles = {} Core.vehicleTypesByModel = {} RegisterNetEvent("esx:onPlayerSpawn", function() ESX.Players[source].spawned = true end) if Config.CustomInventory then SetConvarReplicated("inventory:framework", "esx") SetConvarReplicated("inventory:weight", tostring(Config.MaxWeight * 1000)) end local function StartDBSync() CreateThread(function() local interval = 10 * 60 * 1000 while true do Wait(interval) Core.SavePlayers() end end) end MySQL.ready(function() Core.DatabaseConnected = true if not Config.OxInventory then ESX.Items = exports["codem-inventory"]:GetItemList() while not next(ESX.Items) do ESX.Items = exports["codem-inventory"]:GetItemList() Wait(0) end else TriggerEvent("__cfx_export_ox_inventory_Items", function(ref) if ref then ESX.Items = ref() end end) AddEventHandler("ox_inventory:itemList", function(items) ESX.Items = items end) while not next(ESX.Items) do Wait(0) end end ESX.RefreshJobs() print(("[^2INFO^7] ESX ^5Legacy %s^0 initialized!"):format(GetResourceMetadata(GetCurrentResourceName(), "version", 0))) StartDBSync() if Config.EnablePaycheck then StartPayCheck() end end) RegisterNetEvent("esx:clientLog", function(msg) if Config.EnableDebug then print(("[^2TRACE^7] %s^7"):format(msg)) end end) RegisterNetEvent("esx:ReturnVehicleType", function(Type, Request) if Core.ClientCallbacks[Request] then Core.ClientCallbacks[Request](Type) Core.ClientCallbacks[Request] = nil end end) GlobalState.playerCount = 0