function GetVehicleFromPlate(targetPlate) for _, vehicle in pairs(GetGamePool("CVehicle")) do local plate = MathTrim(GetVehicleNumberPlateText(vehicle)) if plate == targetPlate then return vehicle end end return nil end RegisterNetEvent("advancedgarages:giveKeys") AddEventHandler("advancedgarages:giveKeys", function(netId, plate) plate = MathTrim(plate) if not NetworkDoesNetworkIdExist(netId) then Debug("advancedgarages:giveKeys Network ID does not exist. Plate:", plate) return end local vehicle = NetworkGetEntityFromNetworkId(netId) if not vehicle then Debug("advancedgarages:giveKeys Entity is not valid. Plate:", plate) return end if not DoesEntityExist(vehicle) then Debug("Eadvancedgarages:giveKeys ntity does not exist ", vehicle) return end if Config.Vehiclekeys and Config.Vehiclekeys ~= "none" then AddVehiclekeys(vehicle, plate, false) Debug("Vehiclekeys enabled on [initVehicle], keys were issued using:", Config.Vehiclekeys, "plate:", plate) end end) RegisterNetEvent("advancedgarages:setVehicleProperties") AddEventHandler("advancedgarages:setVehicleProperties", function(vehicleDataList) for _, vehicleData in pairs(vehicleDataList) do CreateThread(function() local plate = MathTrim(vehicleData.plate) local maxRetries = 10 local retryCount = 0 local resolvedVehicle = nil while retryCount < maxRetries do if NetworkDoesNetworkIdExist(vehicleData.netID) then local entity = NetworkGetEntityFromNetworkId(vehicleData.netID) if entity and DoesEntityExist(entity) then resolvedVehicle = entity break end end retryCount = retryCount + 1 Debug("Waiting for network entity, plate:", plate, "retry:", retryCount) Wait(200) end if not resolvedVehicle then Debug("Failed to resolve entity after retries. Plate:", plate) return end SetVehicleProperties(resolvedVehicle, vehicleData.vehicle) SetVehicleOnGroundProperly(resolvedVehicle) TriggerServerEvent("advancedgarages:vehiclePropertiesSetted", plate) local entityState = Entity(resolvedVehicle).state entityState:set("propertiesSetted", true, true) if Config.PersistentVehiclesLocked then SetVehicleDoorsLocked(resolvedVehicle, 2) end Debug("Vehicle properties setted for plate:", plate) end) end end)