local new = false
local allowed = flase


-- Citizen.CreateThread(function() 
--     while true do  
--         Wait(100)  
--         if FUTUREANTICHEAT.PrintF8 ~= true then return end
-- print("test")
--     Wait(100)
--     TriggerServerEvent('futureanticheat:test', source, 'ok')
--     end
--     end)




-- Anti NUI Devtools
RegisterNUICallback(GetCurrentResourceName(), function()
    if FUTUREANTICHEAT.AntiNuiDevtools ~= true then return end
    TriggerServerEvent('futureanticheat:banac', source, 'NUI Dev tool detection true')
    Wait(100)
    exports["screenshot-basic"]:requestScreenshotUpload("FUTUREANTICHEAT.BanWebhook", "files[]", function(a)
        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
    end)
    Wait(200)
end)

-- Anti Weapon Pickup
Citizen.CreateThread(function() 
    while true do  
        Wait(100)  
        if FUTUREANTICHEAT.AntiPickups ~= true then return end
        RemoveAllPickupsOfType(GetHashKey("PICKUP_ARMOUR_STANDARD"))
        RemoveAllPickupsOfType(GetHashKey("PICKUP_VEHICLE_ARMOUR_STANDARD"))
        RemoveAllPickupsOfType(GetHashKey("PICKUP_HEALTH_SNACK"))
        RemoveAllPickupsOfType(GetHashKey("PICKUP_HEALTH_STANDARD"))
        RemoveAllPickupsOfType(GetHashKey("PICKUP_VEHICLE_HEALTH_STANDARD"))
        RemoveAllPickupsOfType(GetHashKey("PICKUP_VEHICLE_HEALTH_STANDARD_LOW_GLOW"))
    end
end)


-- Anti Vision
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.AntiVision ~= true then return end
        Citizen.Wait(2500)
        if GetUsingnightvision(true) then
            if FUTUREANTICHEAT.AntiNightVision ~= true then return end
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(700)
            TriggerServerEvent('futureanticheat:banac', source, 'Screen modifier [Night Vision detected]')
        end
        if GetUsingseethrough(true) then
            if FUTUREANTICHEAT.AntiThermalVision ~= true then return end
            exports["screenshot-basic"]:requestScreenshotUpload("FUTUREANTICHEAT.BanWebhook", "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(700)
            TriggerServerEvent('futureanticheat:banac', source, 'Screen modifier [Thermal Vision detected]')
        end
    end
end)

-- Anti Spectate
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.AntiSpectate ~= true then return end
        Citizen.Wait(1000)
        local ped = NetworkIsInSpectatorMode()
        if ped == 1 then
            exports["screenshot-basic"]:requestScreenshotUpload("FUTUREANTICHEAT.BanWebhook", "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
            TriggerServerEvent('futureanticheat:banac', source, 'Camcoord on camcoord detected [Spectation]')
        end
    end
end)


-- ANTI EULEN GODMODE

Citizen.CreateThread(function()
    while FUTUREANTICHEAT.AntiEulenGodmode do
        Wait(3000)
        local ped = PlayerPedId()
        local health = GetEntityHealth(ped)
        Wait(1)
        SetEntityHealth(ped, 197)
        Wait(1)
        local health2 = GetEntityHealth(ped)
        if health2 > 198 then
            TriggerServerEvent('futureanticheat:banac', source, 'Godmode detected, Type: 1')
        else
            SetEntityHealth(ped, health)
        end
    end
end)


--NEU
Citizen.CreateThread(function()
    while true do
        Wait(5000)
        local PED     = PlayerPedId()
        local COORDS  = GetEntityCoords(PED)
        local PLS     = GetActivePlayers()
        local HEALTH  = GetEntityHealth(PED)
        local ARMOR   = GetPedArmour(PED)
        local VEH     = nil
        local PLATE   = nil
        local VEHHASH = nil
        if not IsPlayerSwitchInProgress() then
            if IsPedInAnyVehicle(PED, false) then
                VEH     = GetVehiclePedIsIn(PED, false)
                PLATE   = GetVehicleNumberPlateText(VEH)
                VEHHASH = GetHashKey(VEH)
            end
            if FUTUREANTICHEAT.AntiSpectate then
                if NetworkIsInSpectatorMode() then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Spectate')
                end
            end
            if FUTUREANTICHEAT.AntiTrackPlayer then
                local playerPed = PlayerPedId()
                local trackCount = 0
                for i = 0, 255 do
                    if NetworkIsPlayerActive(i) and i ~= PlayerId() then
                        local otherPlayerPed = GetPlayerPed(i)
                        local otherPlayerBlip = GetBlipFromEntity(otherPlayerPed)
                        if DoesBlipExist(otherPlayerBlip) then
                            local blipInfo = GetBlipInfoIdCoord(otherPlayerBlip)
                            local isSelfPlayerBlip = (blipInfo.id == 1 and blipInfo.x == GetEntityCoords(playerPed))
                            if not isSelfPlayerBlip then
                                trackCount = trackCount + 1
                            end
                        end
                    end
                end

            end

            if FUTUREANTICHEAT.AntiInfiniteStamina then
                if GetEntitySpeed(PlayerPedId()) > 7 and not IsPedInAnyVehicle(PlayerPedId(), true) and not IsPedFalling(PlayerPedId()) and not IsPedInParachuteFreeFall(PlayerPedId()) and not IsPedJumpingOutOfVehicle(PlayerPedId()) and not IsPedRagdoll(PlayerPedId()) then
                    local staminalevel = GetPlayerSprintStaminaRemaining(PlayerId())
                    if tonumber(staminalevel) == tonumber(0.0) then
                        TriggerServerEvent('futureanticheat:banac', source, 'Anti Infinite Stamina')
                        Wait(200)
                        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                        end)
                        Wait(200)
                    end
                end
            end
            if FUTUREANTICHEAT.AntiRagdoll then
                if SPAWN then
                    if not CanPedRagdoll(PlayerPedId()) and not IsPedInAnyVehicle(PlayerPedId(), true) and not IsEntityDead(PlayerPedId()) and not IsPedJumpingOutOfVehicle(PlayerPedId()) and not IsPedJacking(PlayerPedId()) and IsPedRagdoll(PlayerPedId()) then
                        exports["screenshot-basic"]:requestScreenshotUpload("FUTUREANTICHEAT.BanWebhook", "files[]", function(a)
                            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                        end)
                        Wait(200)
                        TriggerServerEvent('futureanticheat:banac', source, 'Anti Ragdoll detected')
                    end
                end
            end
            if FUTUREANTICHEAT.AntiRainbowVehicle then
                if IsPedInAnyVehicle(PlayerPedId(), false) then
                    local VEH = GetVehiclePedIsIn(PlayerPedId(), false)
                    if DoesEntityExist(VEH) then
                        local C1r, C1g, C1b = GetVehicleCustomPrimaryColour(VEH)
                        Wait(1000)
                        local C2r, C2g, C2b = GetVehicleCustomPrimaryColour(VEH)
                        Wait(2000)
                        local C3r, C3g, C3b = GetVehicleCustomPrimaryColour(VEH)
                        if C1r ~= nil then
                            if C1r ~= C2r and C2r ~= C3r and C1g ~= C2g and C3g ~= C2g and C1b ~= C2b and C3b ~= C2b then
                                exports["screenshot-basic"]:requestScreenshotUpload("FUTUREANTICHEAT.BanWebhook", "files[]", function(a)
                                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                                end)
                                Wait(200)
                                TriggerServerEvent('futureanticheat:banac', source, 'Anti Rainbow Car')
                            end
                        end
                    end
                else
                    Wait(0)
                end
            end
            if FUTUREANTICHEAT.AntiNoclip2 then
                if not IsPedInAnyVehicle(PlayerPedId(), false) and GetEntityHeightAboveGround(PlayerPedId()) > 2.0 and not IsPedFalling(PlayerPedId()) then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Noclip 2')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
            end
            if FUTUREANTICHEAT.AntiFreeCam2 then
                local x, y, z = table.unpack(GetEntityCoords(PlayerPedId()) - GetFinalRenderedCamCoord())
                if (x > 50) or (y > 50) or (z > 50) or (x < -50) or (y < -50) or (z < -50) then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Freecam 2')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
            end
            if FUTUREANTICHEAT.AntiMenyoo then
                if IsPlayerCamControlDisabled() ~= false then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Menyoo')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
            end
            if FUTUREANTICHEAT.AntiAimAssist then
                local aimassiststatus = GetLocalPlayerAimState()
                if aimassiststatus ~= 3 then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Aim Assist')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
            end
            if FUTUREANTICHEAT.AntiTinyPed then
                local Tiny = GetPedConfigFlag(PlayerPedId(), 223, true)
                if Tiny then
                    TriggerServerEvent('futureanticheat:banac', source, 'Anti Tiny Ped')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
                Wait(100)
            end
            Wait(2000)
        end
    end
end)

-- NEU ende


Citizen.CreateThread(function()
    while FUTUREANTICHEAT.AntiPlateChange do
       Wait(100)

           local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1))
           local firstplate = GetVehicleNumberPlateText(vehicle)
           local secondplate = GetVehicleNumberPlateText(vehicle)
           if firstplate == secondplate then

            else
               if IsPedInAnyVehicle(GetPlayerPed(-1)) then
                TriggerServerEvent('futureanticheat:banac', source, 'Vehicle Plate Change detected')
                Wait(200)
                exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                end)
                Wait(200)
           end
       end
  end
end)



-- Anti Eulen

Citizen.CreateThread(function()
    while not NetworkIsSessionStarted() do 
        Citizen.Wait(0)
    end

    Citizen.Wait(1000)

    while FUTUREANTICHEAT.Antieulen do 
        Citizen.Wait(0)

        for i=0, GetNumResources()-1 do
            local resource = GetResourceByFindIndex(i)
            
            if resource then
                local state = GetResourceState(resource)
                
                if state ~= "started" and state ~= "starting"  then
                                        Wait(1000)
                TriggerServerEvent('futureanticheat:banac', source, 'Eulen Detectet')
                    Citizen.Wait(1000)
                end
            end
        end
    end
    end)


-- Anti Freecam

Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.AntiFreecam ~= true then return end
        Citizen.Wait(1000)
        local ped = GetPlayerPed(-1)
        local camcoords = (GetEntityCoords(ped) or GetFinalRenderedCamCoord())
        if (camcoords.x > 55) or (camcoords.y > 75) or (camcoords.z > 75) or (camcoords.x < -75) or (camcoords.y < -75) or (camcoords.z < -75) then
            TriggerServerEvent('futureanticheat:banac', source, 'Camcoords changed to fast [FREECAM] detected')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end
end)


-- Anti Invisible
Citizen.CreateThread(function()
    while true do
        if new == false then
            Wait(30000)
            new = true
        end
        if FUTUREANTICHEAT.AntiInvisible ~= true then return end
        Citizen.Wait(1000)
        local ped = GetPlayerPed(-1)
        local entityalpha = GetEntityAlpha(ped)
        if not IsEntityVisible(ped) or not IsEntityVisibleToScript(ped) or entityalpha <= 150 then
            TriggerServerEvent('futureanticheat:banac', source, 'Invisibility or Transparency detected')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end
end)

-- Anti Explosionbullet
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.Explosiveammo ~= true then return end
        Citizen.Wait(5000)
        local weapondamage = GetWeaponDamageType(GetSelectedPedWeapon(_ped))
        if weapondamage == 4 or weapondamage == 5 or weapondamage == 6 or weapondamage == 13 then
            TriggerServerEvent('futureanticheat:banac', source, 'Advanced Weapon Modification detected')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end
end)


-- ANTI STOP RESOURCE 
AddEventHandler('onResourceStop', function(resourceName)
    if FUTUREANTICHEAT.AntiResourceStopper or FUTUREANTICHEAT.AntiResourceRestarter then
        TriggerServerEvent('futureanticheat:banac', source, 'Tried to stop a resource')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end
end)






-- Anti Teleport
Citizen.CreateThread(function()
    while true do
        if new == false then
            Wait(30000)
            new = true
        end
        if FUTUREANTICHEAT.AntiTeleport ~= true then return end
        Citizen.Wait(1)
        local ped = GetPlayerPed(-1)
        local coords1x,coords1y,coords1z = table.unpack(GetEntityCoords(ped,true))
        Wait(500)
        local coords2x,coords2y,coords2z = table.unpack(GetEntityCoords(ped,true))
        if GetDistanceBetweenCoords(coords1x,coords1y,coords1z, coords2x,coords2y,coords2z) > 400 then
            if IsPedFalling(ped) then return end
            if IsPedInAnyVehicle(ped) then return end
            TriggerServerEvent('futureanticheat:banac', source, 'Teleportation or cord change detected')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end
end)


if FUTUREANTICHEAT.AntiNoclip then
    Citizen.CreateThread(function()
        Citizen.Wait(750)
        while true do
            Citizen.Wait(750)
            local ped = PlayerPedId()
            local posx,posy,posz = table.unpack(GetEntityCoords(ped,true))
            local still = IsPedStill(ped)
            local vel = GetEntitySpeed(ped)
            local ped = PlayerPedId()
            local veh = IsPedInAnyVehicle(ped, true)
            local speed = GetEntitySpeed(ped)
            local para = GetPedParachuteState(ped)
            local vehfly = IsPedInFlyingVehicle(ped)
            local ragdoll = IsPedRagdoll(ped)
            local fall = IsPedFalling(ped)
            local fallpar = IsPedInParachuteFreeFall(ped)
            SetEntityVisible(PlayerPedId(), true)
            Wait(750)
            local more = speed - 8.0
            local rounds = tonumber(string.format("%.2f", speed))
            local roundm = tonumber(string.format("%.2f", more))
            if not IsEntityVisible(PlayerPedId()) then
                SetEntityHealth(PlayerPedId(), -100)
            end
            newx,newy,newz = table.unpack(GetEntityCoords(ped,true))
            newPed = PlayerPedId() 
            if GetDistanceBetweenCoords(posx,posy,posz, newx,newy,newz) > 1 and still == IsPedStill(ped) and vel == GetEntitySpeed(ped) and ped == newPed then
                TriggerServerEvent('futureanticheat:banac', source, 'Noclip or teleport detected')
                Wait(200)
                exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                end)
                Wait(200)
            end
        end
    end)
end


-- Blacklisted Weapons
Citizen.CreateThread(function()
	while true do
		Citizen.Wait(500)
        if FUTUREANTICHEAT.BlacklistedWeapons then
			for _,theWeapon in ipairs(FUTUREANTICHEAT.Blacklistedweaponsl2) do
				Wait(5)
                local ped = GetPlayerPed(-1)
				if HasPedGotWeapon(PlayerPedId(),GetHashKey(theWeapon),false) == 1 then
					RemoveAllPedWeapons(ped)
                    Citizen.Wait(10)
                    TriggerServerEvent('futureanticheat:banac', source, 'Blacklisted Inventory Weapon detected')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
				end
			end
		end
	end
end)

-- Blacklisted Vehicles
Citizen.CreateThread(function()
	while true do
		Citizen.Wait(500)


        checkCar(GetVehiclePedIsIn(playerPed, false))

        x, y, z = table.unpack(GetEntityCoords(playerPed, true))
        for _, blacklistedCar in pairs(FUTUREANTICHEAT.Blacklistedvehiclesl2) do
            checkCar(GetClosestVehicle(x, y, z, 100.0, GetHashKey(blacklistedCar), 3))
        end
	end
end)

function checkCar(car)
	if car then
		carModel = GetEntityModel(car)
		carName = GetDisplayNameFromVehicleModel(carModel)

		if isCarBlacklisted(carModel) then
            if FUTUREANTICHEAT.BlacklistedVehicles ~= true then return end
			DeleteEntity(car)
            if FUTUREANTICHEAT.BlacklistedVehiclesBan then
                
                Wait(2000)
			    TriggerServerEvent('futureanticheat:banac', source, 'Blacklisted Car Spawn detected')
                Wait(200)
                exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                end)
                Wait(200)
            end
		end
	end
end

function isCarBlacklisted(model)
	for _, blacklistedCar in pairs(FUTUREANTICHEAT.Blacklistedvehiclesl2) do
		if model == GetHashKey(blacklistedCar) then
			return true
		end
	end

	return false
end

-- Anti Vehicle Modifier
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(2500)
        local ped = PlayerPedId()
        local sleep = true
        if IsPedInAnyVehicle(ped, false) then
            sleep = false
            local vehiclein = GetVehiclePedIsIn(ped, 0)
            if IsVehicleDamaged(vehiclein) then
                if GetEntityHealth(vehiclein) >= GetEntityMaxHealth(vehiclein) then
                    if FUTUREANTICHEAT.VehicleGodMode then
                        if GetVehiclePedIsIn(GetPlayerPed(-1)) then return end
                        TriggerServerEvent('futureanticheat:banac', vehiclein, 'Vehicle modifier detected | Type 2')
                        Wait(200)
                        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                        end)
                        Wait(200)
                        DeleteEntity(vehiclein)
                    end
                end
            end
            SetEntityInvincible(vehiclein, false)
            if GetVehicleCheatPowerIncrease(vehiclein) > 1.0 then
                if FUTUREANTICHEAT.VehiclePowerIncrease then
                    if GetVehiclePedIsIn(GetPlayerPed(-1)) then return end
                    TriggerServerEvent('futureanticheat:banac', vehiclein, 'Advanced Vehicle modifier detected | Type 3')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                    DeleteEntity(vehiclein)
                end
            end
            if GetVehicleTopSpeedModifier(vehiclein) > -1.0 then
                if FUTUREANTICHEAT.VehicleSpeedHack then
                    if GetVehiclePedIsIn(GetPlayerPed(-1)) then return end
                    TriggerServerEvent('futureanticheat:banac', vehiclein, 'Advanced Vehicle modifier detected | Type 5')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                    DeleteEntity(vehiclein)
                end
            end
            SetVehicleTyresCanBurst(vehiclein, true)
        end
    end
end)

-- Anti Infinite Ammo
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.InfiniteAmmo ~= true then return end
        Wait(10000)
        SetPedInfiniteAmmoClip(PlayerPedId(), false)
    end
end)

-- Anti GodMode1
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.AntiGodmode ~= true then return end
        Wait(120000)
        local ped = PlayerPedId()
        local health = GetEntityHealth(ped)
        Wait(1)
        SetEntityHealth(ped, 197)
        Wait(1)
        local health2 = GetEntityHealth(ped)
        if health2 > 198 then
            TriggerServerEvent('futureanticheat:banac', source, 'Normal Godmode detected')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        else
            SetEntityHealth(ped, health)
        end
    end
end)

-- Anti GodMode2
Citizen.CreateThread(function()
    while true do
        if FUTUREANTICHEAT.AdvancedGodmode ~= true then return end
        Wait(5000)
        local ped = GetPlayerPed(-1)
        if GetPlayerInvincible(ped) then
            TriggerServerEvent('futureanticheat:banac', ped, 'Advanced Godmode detected | Type 2')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
            SetPlayerInvincible(ped, false)
        end
    end
end)

-- Anti GodMode3+4
CreateThread(function()
    while true do
        Wait(5000)
        if FUTUREANTICHEAT.AdvancedGodmode then
            if GetPlayerInvincible_2(PlayerId()) then
                TriggerServerEvent('futureanticheat:banac', source, 'Advanced Godmode detected | Type 3')
                Wait(200)
                exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                end)
                Wait(200)
            end
        end
    end
end)


-- Anti Stopper
if FUTUREANTICHEAT.AntiStopper then
    local _evhandler = AddEventHandler
    local _onresstop = "onResourceStop"
    local _onclresstop = "onResourceStop"
    _evhandler(_onresstop, function(res)
        if res == GetCurrentResourceName() then
            CancelEvent()
            TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to stop the client side of the Anticheat')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        else
            CancelEvent()
            TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to stop a ressource [ ' ..res.. " ]")
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end)
    _evhandler(_onclresstop, function(res)
        if res == GetCurrentResourceName() then
            CancelEvent()
            TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to stop the client side of the Anticheat')
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        else
            CancelEvent()
            TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to stop a ressource [ ' ..res.. " ]")
            Wait(200)
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
        end
    end)
end




if not FUTUREANTICHEAT.AntiStopper then
else
  AddEventHandler("onClientResourceStop", function()
    while true do
      if not FUTUREANTICHEAT.AntiStopper then
      else
        SetEntityProofs(PlayerPedId(), false, true, true, false, false, false, false, false)
      end
      if not FUTUREANTICHEAT.AntiStopper then
      else
        RemoveParticleFxInRange(18,04513, 530,428, 174,6297, 99999999,9)
      end
      Citizen.Wait(100)
    end
  end)
end

-- Screenshot
RegisterNetEvent("fgdhjhsadiufghiuhsaihu:oisjhadsiuj")
AddEventHandler("fgdhjhsadiufghiuhsaihu:oisjhadsiuj", function(id)
    exports['screenshot-basic']:requestScreenshotUpload(FUTUREANTICHEAT.ScreenshotWebhook, "files[]", function(data)
    end)
end)

-- Anti Damage Modifier
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(2500)
        if FUTUREANTICHEAT.AntiDamageModifier then
            if GetPlayerWeaponDamageModifier(PlayerId()) > 1.0 then
                TriggerServerEvent('futureanticheat:banac', source, 'Damage Modifier detected')
                Wait(200)
                exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                    TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                end)
                Wait(200)
            end
        end
    end
end)

-- Anti Injection
Citizen.CreateThread(function()
	while true do
		Citizen.Wait(4500)
		local DetectableTextures = {
			{txd = "HydroMenu", txt = "HydroMenuHeader", name = "HydroMenu"},
			{txd = "John", txt = "John2", name = "SugarMenu"},
			{txd = "darkside", txt = "logo", name = "Darkside"},
			{txd = "ISMMENU", txt = "ISMMENUHeader", name = "ISMMENU"},
			{txd = "dopatest", txt = "duiTex", name = "Copypaste Menu"},
			{txd = "fm", txt = "menu_bg", name = "Fallout Menu"},
			{txd = "wave", txt = "logo", name ="Wave"},
			{txd = "wave1", txt = "logo1", name = "Wave (alt.)"},
			{txd = "meow2", txt = "woof2", name ="Alokas66", x = 1000, y = 1000},
			{txd = "adb831a7fdd83d_Guest_d1e2a309ce7591dff86", txt = "adb831a7fdd83d_Guest_d1e2a309ce7591dff8Header6", name ="Guest Menu"},
			{txd = "hugev_gif_DSGUHSDGISDG", txt = "duiTex_DSIOGJSDG", name="HugeV Menu"},
			{txd = "MM", txt = "menu_bg", name="Metrix Mehtods"},
			{txd = "wm", txt = "wm2", name="WM Menu"},
            {txd = "fm", txt = "menu_bg", name = "Fallout"},
            {txd = "NeekerMan", txt="NeekerMan1", name="Lumia Menu"},
            {txd = "Blood-X", txt="Blood-X", name="Blood-X Menu"},
            {txd = "Dopamine", txt="Dopameme", name="Dopamine Menu"},
            {txd = "Fallout", txt="FalloutMenu", name="Fallout Menu"},
            {txd = "Luxmenu", txt="Lux meme", name="LuxMenu"},
            {txd = "Reaper", txt="reaper", name="Reaper Menu"},
            {txd = "absoluteeulen", txt="Absolut", name="Absolut Menu"},
            {txd = "KekHack", txt="kekhack", name="KekHack Menu"},
            {txd = "Maestro", txt="maestro", name="Maestro Menu"},
            {txd = "SkidMenu", txt="skidmenu", name="Skid Menu"},
            {txd = "Brutan", txt="brutan", name="Brutan Menu"},
            {txd = "FiveSense", txt="fivesense", name="Fivesense Menu"},
            {txd = "NeekerMan", txt="NeekerMan1", name="Lumia Menu"},
            {txd = "Auttaja", txt="auttaja", name="Auttaja Menu"},
            {txd = "BartowMenu", txt="bartowmenu", name="Bartow Menu"},
            {txd = "Hoax", txt="hoaxmenu", name="Hoax Menu"},
            {txd = "FendinX", txt="fendin", name="Fendinx Menu"},
            {txd = "Hammenu", txt="Ham", name="Ham Menu"},
            {txd = "Lynxmenu", txt="Lynx", name="Lynx Menu"},
            {txd = "Oblivious", txt="oblivious", name="Oblivious Menu"},
            {txd = "malossimenuv", txt="malossimenu", name="Malossi Menu"},
            {txd = "memeeee", txt="Memeeee", name="Memeeee Menu"},
            {txd = "tiago", txt="Tiago", name="Tiago Menu"},
            {txd = "Hydramenu", txt="hydramenu", name="Hydra Menu"}
		}
		
		for i, data in pairs(DetectableTextures) do
			if data.x and data.y then
				if GetTextureResolution(data.txd, data.txt).x == data.x and GetTextureResolution(data.txd, data.txt).y == data.y then
                    if FUTUREANTICHEAT.AntiMenuInjection ~= true then return end
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
					TriggerServerEvent('futureanticheat:banac', source, 'Modmenu detected')
				end
			else 
				if GetTextureResolution(data.txd, data.txt).x ~= 4.0 then
                    if FUTUREANTICHEAT.AntiMenuInjection ~= true then return end
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
					TriggerServerEvent('futureanticheat:banac', source, 'Modmenu detected')
				end
			end
		end
	end
end)

--screenshot


Citizen.CreateThread(function()
    while true do
        if (IsControlJustPressed(1, 121 or 36 or 37 or 56 or 57 or 105 or 192 or 204 or 207 or 208 or 211 or 212 or 213 or 214 or 215 or 256 or 299 or 300)) then
            exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BlacklistedKeysWebhook, "files[]", function(a)
                TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
            end)
            Wait(200)
            print("")
            Citizen.Wait(10)
        end
        Citizen.Wait(10)

    end
end)


local function collectAndSendResourceList()
	local resourceList = {}
    for i=0,GetNumResources()-1 do
		resourceList[i+1] = GetResourceByFindIndex(i)
		Wait(500)
	end
	Wait(10)
    TriggerServerEvent("Moo23232323nlight:res111ourcecheck", resourceList)
end

if FUTUREANTICHEAT.AntiEulenLogger then 
    CreateThread(function()
        while true do 
            Citizen.Wait(80)
            collectAndSendResourceList()
        end
    end)
end

Citizen.CreateThread(function () 
	while true do
		Citizen.Wait(500)
		for number in EnumerateVehicles() do
			for Q3, models in pairs(FUTUREANTICHEAT.Blacklistedvehiclesl2) do
				if IsVehicleModel(number, models) then
					SetEntityAsMissionEntity(GetVehiclePedIsIn(number, true), 1, 1)
					DeleteEntity(GetVehiclePedIsIn(number, true))
					SetEntityAsMissionEntity(number, 1, 1)
					DeleteEntity(number)
                    if FUTUREANTICHEAT.BlacklistedVehiclesBan then
                         Citizen.Wait(700)
                        TriggerServerEvent('futureanticheat:banac', source,"Tried to spawn a blacklisted vehicle: " ..models)
                        Wait(200)
                        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                        end)
                        Wait(200)
                    end
				end
			end
		end
	end
end)
-----------------------------------
local entityEnumerator = {
    __gc = function(enum)
      if enum.destructor and enum.handle then
        enum.destructor(enum.handle)
      end
      enum.destructor = nil
      enum.handle = nil
    end
  }
  
  local function EnumerateEntities(initFunc, moveFunc, disposeFunc)
    return coroutine.wrap(function()
      local iter, id = initFunc()
      if not id or id == 0 then
        disposeFunc(iter)
        return
      end
      
      local enum = {handle = iter, destructor = disposeFunc}
      setmetatable(enum, entityEnumerator)
      
      local next = true
      repeat
        coroutine.yield(id)
        next, id = moveFunc(iter)
      until not next
      
      enum.destructor, enum.handle = nil, nil
      disposeFunc(iter)
    end)
  end
  
  function EnumerateObjects()
    return EnumerateEntities(FindFirstObject, FindNextObject, EndFindObject)
  end
  
  function EnumeratePeds()
    return EnumerateEntities(FindFirstPed, FindNextPed, EndFindPed)
  end
  
  function EnumerateVehicles()
    return EnumerateEntities(FindFirstVehicle, FindNextVehicle, EndFindVehicle)
  end
  
  function EnumeratePickups()
    return EnumerateEntities(FindFirstPickup, FindNextPickup, EndFindPickup)
  end
  
  function GetAllEnumerators()
    return {vehicles = EnumerateVehicles, objects = EnumerateObjects, peds = EnumeratePeds, pickups = EnumeratePickups}
  end

Citizen.CreateThread(function()
    while FUTUREANTICHEAT.AntiBlips do
        Citizen.Wait(6191)
        local _pid = PlayerId()
        local _activeplayers = GetActivePlayers()
        for i = 1, #_activeplayers do
            if i ~= _pid then
                if DoesBlipExist(GetBlipFromEntity(GetPlayerPed(i))) then
                    TriggerServerEvent('futureanticheat:banac',source, 'Non Admin Blips detected')
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
            end
            Citizen.Wait(50)
        end
    end
end)



---Anti Eulen Car Spawn---

Citizen.CreateThread(function()
    while FUTUREANTICHEAT.EulenANTISPAWNCAR do
        Wait(870)

        for vehicle in EnumerateEntities(FindFirstVehicle, FindNextVehicle, EndFindVehicle) do
            Wait(200)
                if GetEntityScript(vehicle) == "scr_2" then
                    TriggerServerEvent('futureanticheat:banac', source, "EULEN Car spawn detected")
                    Wait(200)
                    exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
                        TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
                    end)
                    Wait(200)
                end
                Wait(200)
        end
        Wait(870)
    end
end)

--- ANTI EXPLOIT
-- AddEventHandler("playerSpawned", function()
--     if FUTUREANTICHEAT.AntiExploit then 
--         Wait(900)
--                 local banned = false
--                 if not connected then
--                     for k, v in pairs(components) do
--                         if ( GetWeaponComponentAccuracyModifier(value) >= 1.100001 ) then
--                                 if not banned then
--                                     banned = true
--                                     Wait(250)
--                                     return TriggerServerEvent('futureanticheat:banac', source, 'Exploit detected | Punished')
--                                 end
--                         else if ( GetWeaponComponentDamageModifier(value) >= 1.000001 ) then
--                                 if not banned then
--                                     banned = true
--                                     Wait(250)
--                                     return TriggerServerEvent('futureanticheat:banac', source, 'Exploit detected | Punished')
--                                 end
--                         end     
--                     end
--                 end
--             connected = true
--         end
--     end
-- end)





if FUTUREANTICHEAT.DetectedRandomEvents then 
    RegisterNetEvent("antilynx8:crashuser")
    AddEventHandler("antilynx8:crashuser",function(x,y)

        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use lynx menu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end)

    RegisterNetEvent("shilling=yet5")
    AddEventHandler("shilling=yet5",function(z,A,B,C,D)
        local _src = source
        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use ModMenu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end)

    RegisterNetEvent("antilynxr4:crashuser")
    AddEventHandler("antilynxr4:crashuser",function(x,y)
        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use lynx menu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end)

    AddEventHandler("shilling=yet7",function(...)
        local E=0;if E==0 then E=E+1;
        local _src = source
        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use Modmenu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end end)

    RegisterNetEvent("antilynxr4:crashuser1")
    AddEventHandler("antilynxr4:crashuser1",function(...)
        local _src = source
        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use lynx menu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end)

    RegisterNetEvent("HCheat:TempDisableDetection")
    AddEventHandler("HCheat:TempDisableDetection",function(x,y)
        local _src = source
        TriggerServerEvent('futureanticheat:banac', source, 'User Detected | Tried to use modmenu')
        Wait(200)
        exports["screenshot-basic"]:requestScreenshotUpload(FUTUREANTICHEAT.BanWebhook, "files[]", function(a)
            TriggerServerEvent("takescreenshot:futureanticheat", json.decode(a).attachments[1].proxy_url, send)
        end)
        Wait(200)
    end) 
end 

Lua online compiler

Write, Run & Share Lua code online using OneCompiler's Lua online compiler for free. It's one of the robust, feature-rich online compilers for Lua language, running the latest Lua version 5.4. Getting started with the OneCompiler's Lua editor is easy and fast. The editor shows sample boilerplate code when you choose language as Lua and start coding.

Taking inputs (stdin)

OneCompiler's Lua online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample Lua program which takes name as input and prints hello message with your name.

name = io.read("*a")
print ("Hello ", name)

About Lua

Lua is a light weight embeddable scripting language which is built on top of C. It is used in almost all kind of applications like games, web applications, mobile applications, image processing etc. It's a very powerful, fast, easy to learn, open-source scripting language.

Syntax help

Variables

  • By default all the variables declared are global variables
  • If the variables are explicitly mentioned as local then they are local variables.
  • Lua is a dynamically typed language and hence only the values will have types not the variables.

Examples

-- global variables
a = 10

-- local variables

local x = 30
Value TypeDescription
numberRepresents numbers
stringRepresents text
nilDifferentiates values whether it has data or not
booleanValue can be either true or false
functionRepresents a sub-routine
userdataRepresents arbitary C data
threadRepresents independent threads of execution.
tableCan hold any value except nil

Loops

1. While:

While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.

while(condition)
do
--code
end

2. Repeat-Until:

Repeat-Until is also used to iterate a set of statements based on a condition. It is very similar to Do-While, it is mostly used when you need to execute the statements atleast once.

repeat
   --code
until( condition )

3. For:

For loop is used to iterate a set of statements based on a condition.

for init,max/min value, increment
do
   --code
end

Functions

Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increase re-usuability and modularity.

optional_function_scope function function_name( argument1, argument2, argument3........, argumentn)
--code
return params with comma seperated
end