local ESX = nil local QBCore = nil local fiveguard = nil CreateThread(function() if GetResourceState("es_extended") == "started" or GetResourceState("es_extended") == "starting" then ESX = exports["es_extended"]:getSharedObject() print("^0The following framework was detected: ESX (es_extended)") elseif GetResourceState("qb-core") == "started" or GetResourceState("qb-core") == "starting" then QBCore = exports["qb-core"]:GetCoreObject() print("^0The following framework was detected: QB-Core (qb-core)") end end) CreateThread(function() while true do Wait(Configuration.WaitBeforeCheck) while ESX == nil and QBCore == nil do Wait(1000) end for k, v in ipairs(GetPlayers()) do local playerPed = GetPlayerPed(v) local playerWeapon = GetSelectedPedWeapon(playerPed) if not Configuration.Weapons.Ignorelist[playerWeapon] and weapons[playerWeapon] ~= nil then checkWeapon(v, playerPed, playerWeapon) end end end end) function checkWeapon(player, playerPed, weaponHash) if ESX ~= nil then local xPlayer = ESX.GetPlayerFromId(player) if xPlayer == nil then return end local weaponFound = false for k, v in ipairs(xPlayer.getLoadout()) do if GetHashKey(v.name) == weaponHash then weaponFound = true break end end if not weaponFound then RemoveWeaponFromPed(playerPed, weaponHash) if Configuration.Weapons.BanPlayer then if fiveguard == nil then return end exports[fiveguard]:fg_BanPlayer(player, string.format("(ESX) Weapon Cheat Detected (%s)", (weapons[weaponHash] or weaponHash)), true) end end elseif QBCore ~= nil then local xPlayer = QBCore.Functions.GetPlayer(tonumber(player)) if xPlayer == nil then return end local weaponFound = false for k, v in ipairs(xPlayer.PlayerData.items) do if GetHashKey(v.name) == weaponHash then weaponFound = true end end if not weaponFound then RemoveWeaponFromPed(playerPed, weaponHash) if Configuration.Weapons.BanPlayer then if fiveguard == nil then return end exports[fiveguard]:fg_BanPlayer(player, string.format("(QB-Core) Weapon Cheat Detected (%s)", (weapons[weaponHash] or weaponHash)), true) end end end end AddEventHandler("fg:ExportsLoaded", function(fiveguard_res, res) if res == "*" or res == GetCurrentResourceName() then fiveguard = fiveguard_res end end)