ESP (Working perfectly)
Key Required Verified

ESP (Working perfectly)

ArsenalZacharyZachary 58.1K views 249 executesUpdated Dec 3, 2021
5.0/ 5(6 votes)
60100% Positive
Lua Script•419 lines (14429 chars)
local plrs = game:GetService("Players")
local TeamBased = true ; local teambasedswitch = "o"
local presskeytoaim = true; local aimkey = "e"
local raycast = false
 
local espupdatetime = 5; autoesp = false
 
 
 
local lockaim = true; local lockangle = 5
 
 
 
--function findwat(folder, what)
--  for i, smth in pairs(folder:GetChildren()) do
--      if string.find(string.lower(tostring(smth)), string.lower(what)) then
--          return smth
--      end
--  end
--end
--
--local plrs = findwat(game, "Players")
 
 
 
 
local Gui = Instance.new("ScreenGui")
local Move = Instance.new("Frame")
local Main = Instance.new("Frame")
local EspStatus = Instance.new("TextLabel")
local st1 = Instance.new("TextLabel")
local st1_2 = Instance.new("TextLabel")
local st1_3 = Instance.new("TextLabel")
local Name = Instance.new("TextLabel")
--Properties:
Gui.Name = "Gui"
Gui.Parent = plrs.LocalPlayer:WaitForChild("PlayerGui")
 
Move.Name = "Move"
Move.Parent = Gui
Move.BackgroundColor3 = Color3.new(0.631373, 0.631373, 0.631373)
Move.BackgroundTransparency = 0.40000000596046
Move.BorderSizePixel = 0
Move.Position = UDim2.new(0.005, 0,0.018, 0)
Move.Size = UDim2.new(0.28141585, 0, 0.0320388414, 0)
 
Main.Name = "Main"
Main.Parent = Move
Main.BackgroundColor3 = Color3.new(0.176471, 0.176471, 0.176471)
Main.BackgroundTransparency = 0.69999998807907
Main.Position = UDim2.new(0, 0, 0.995670795, 0)
Main.Size = UDim2.new(1.0000006, 0, 9.79697132, 0)
 
EspStatus.Name = "EspStatus"
EspStatus.Parent = Main
EspStatus.BackgroundColor3 = Color3.new(1, 1, 1)
EspStatus.BackgroundTransparency = 1
EspStatus.Size = UDim2.new(0.272955924, 0, 0.161862016, 0)
EspStatus.Font = Enum.Font.SourceSansBold
EspStatus.Text = "Press T to update ESP"
EspStatus.TextColor3 = Color3.new(0.0431373, 1, 0.0745098)
EspStatus.TextScaled = true
EspStatus.TextSize = 14
EspStatus.TextWrapped = true
 
st1.Name = "st1"
st1.Parent = Main
st1.BackgroundColor3 = Color3.new(1, 1, 1)
st1.BackgroundTransparency = 1
st1.Position = UDim2.new(0.271787882, 0, 0, 0)
st1.Size = UDim2.new(0.728211343, 0, 0.161862016, 0)
st1.Font = Enum.Font.SourceSansBold
st1.Text = "Press "..aimkey.." to lock on a person inside ur view"
st1.TextColor3 = Color3.new(0.0431373, 1, 0.0745098)
st1.TextScaled = true
st1.TextSize = 14
st1.TextWrapped = true
 
st1_2.Name = "st1"
st1_2.Parent = Main
st1_2.BackgroundColor3 = Color3.new(1, 1, 1)
st1_2.BackgroundTransparency = 1
st1_2.Position = UDim2.new(0, 0, 0.375590861, 0)
st1_2.Size = UDim2.new(0.999999881, 0, 0.161862016, 0)
st1_2.Font = Enum.Font.SourceSansBold
st1_2.Text = "Press L to enable ESP loop"
st1_2.TextColor3 = Color3.new(0.0431373, 1, 0.0745098)
st1_2.TextScaled = true
st1_2.TextSize = 14
st1_2.TextWrapped = true
 
st1_3.Name = "st1"
st1_3.Parent = Main
st1_3.BackgroundColor3 = Color3.new(1, 1, 1)
st1_3.BackgroundTransparency = 1
st1_3.Position = UDim2.new(0, 0, 0.18558608, 0)
st1_3.Size = UDim2.new(0.999999881, 0, 0.161862016, 0)
st1_3.Font = Enum.Font.SourceSansBold
st1_3.Text = "Press O to change team based mode"
st1_3.TextColor3 = Color3.new(0.0431373, 1, 0.0745098)
st1_3.TextScaled = true
st1_3.TextSize = 14
st1_3.TextWrapped = true
local teambasedstatus = st1_3:Clone()
teambasedstatus.Parent = st1_3
teambasedstatus.TextScaled = true
teambasedstatus.Position = UDim2.new(0, 0,0.694, 0)
teambasedstatus.Text = tostring(TeamBased)
 
Name.Name                   = "Name"
Name.Parent                 = Move
Name.BackgroundColor3       = Color3.new(1, 1, 1)
Name.BackgroundTransparency = 1
Name.Size                   = UDim2.new(0.838, 0, 0.980000019, 0)
Name.Font                   = Enum.Font.Cartoon
Name.Text                   = "Arsenal Aimbot + ESP by Frigid Exploits"
Name.TextColor3             = Color3.new(0, 0, 0)
Name.TextScaled             = true
Name.TextSize               = 14
Name.TextWrapped            = true
Name.TextXAlignment         = Enum.TextXAlignment.Left
-- Scripts:
 
 
local plrsforaim = {}
 
local lplr = game:GetService("Players").LocalPlayer
Move.Draggable = true
Gui.ResetOnSpawn = false
Gui.Name = "Chat"
Gui.DisplayOrder = 999
 
    Gui.Parent = plrs.LocalPlayer.PlayerGui
 
 
f = {}
local espforlder
 
f.addesp = function()
    --print("ESP ran")
    if espforlder then
    else
        espforlder = Instance.new("Folder")
        espforlder.Parent = game.Workspace.CurrentCamera
    end
    for i, v in pairs(espforlder:GetChildren()) do
        v:Destroy()
    end
    for _, plr in pairs(plrs:GetChildren()) do
        if plr.Character and plr.Character.Humanoid.Health > 0 and plr.Name ~= lplr.Name then
            if TeamBased == true then
                if plr.Team.Name ~= plrs.LocalPlayer.Team.Name  then
                    local e = espforlder:FindFirstChild(plr.Name)
                    if not e then
                        --print("Added ESP for team based")
                        local bill = Instance.new("BillboardGui", espforlder)
                        bill.Name = plr.Name
                        bill.AlwaysOnTop = true
                        bill.Size = UDim2.new(1,0,1,0)
                        bill.Adornee = plr.Character.Head
                        local Frame = Instance.new('Frame',bill)
                        Frame.Active = true
                        Frame.BackgroundColor3 = Color3.new(0/255,255/255,0/255)
                        Frame.BackgroundTransparency = 0
                        Frame.BorderSizePixel = 0
                        Frame.AnchorPoint = Vector2.new(.5, .5)
                        Frame.Position = UDim2.new (0.5,0,0.5,0)
                        Frame.Size = UDim2.new (1,0,1,0)
                        Frame.Rotation = 0
                        plr.Character.Humanoid.Died:Connect(function()
                            bill:Destroy()
                        end)
                    end
                end
            else
                local e = espforlder:FindFirstChild(plr.Name)
                if not e then
                    --print("Added esp")
                    local bill = Instance.new("BillboardGui", espforlder)
                    bill.Name = plr.Name
                    bill.AlwaysOnTop = true
                    bill.Size = UDim2.new(1,0,1,0)
                    bill.Adornee = plr.Character.Head
                    local Frame = Instance.new('Frame',bill)
                    Frame.Active = true
                    Frame.BackgroundColor3 = Color3.new(0/255,255/255,0/255)
                    Frame.BackgroundTransparency = 0
                    Frame.BorderSizePixel = 0
                    Frame.AnchorPoint = Vector2.new(.5, .5)
                    Frame.Position = UDim2.new (0.5,0,0.5,0)
                    Frame.Size = UDim2.new (1,0,1,0)
                    Frame.Rotation = 0
                    plr.Character.Humanoid.Died:Connect(function()
                        bill:Destroy()
                    end)
                end
            end
 
 
        end
    end
end
local cam = game.Workspace.CurrentCamera
 
local mouse = lplr:GetMouse()
local switch = false
local key = "k"
local aimatpart = nil
mouse.KeyDown:Connect(function(a)
    if a == "t" then
        print("worked1")
        f.addesp()
    elseif a == "u" then
        if raycast == true then
            raycast = false
        else
            raycast = true
        end
    elseif a == "l" then
        if autoesp == false then
            autoesp = true
        else
            autoesp = false
        end
    end
    if a == "j" then
        if mouse.Target then
            mouse.Target:Destroy()
        end
    end
    if a == key then
        if switch == false then
            switch = true
        else
            switch = false
            if aimatpart ~= nil then
                aimatpart = nil
            end
        end
    elseif a == teambasedswitch then
        if TeamBased == true then
            TeamBased = false
            teambasedstatus.Text = tostring(TeamBased)
        else
            TeamBased = true
            teambasedstatus.Text = tostring(TeamBased)
        end
    elseif a == aimkey then
        if not aimatpart then
            local maxangle = math.rad(20)
            for i, plr in pairs(plrs:GetChildren()) do
                if plr.Name ~= lplr.Name and plr.Character and plr.Character.Head and plr.Character.Humanoid and plr.Character.Humanoid.Health > 1 then
                    if TeamBased == true then
                        if plr.Team.Name ~= lplr.Team.Name then
                            local an = checkfov(plr.Character.Head)
                            if an < maxangle then
                                maxangle = an
                                aimatpart = plr.Character.Head
                            end
                        end
                    else
                        local an = checkfov(plr.Character.Head)
                            if an < maxangle then
                                maxangle = an
                                aimatpart = plr.Character.Head
                            end
                            print(plr)
                    end
                    plr.Character.Humanoid.Died:Connect(function()
                        if aimatpart.Parent == plr.Character or aimatpart == nil then
                            aimatpart = nil
                        end
                    end)
                end
            end
        else
            aimatpart = nil
        end
    end
end)
 
function getfovxyz (p0, p1, deg)
    local x1, y1, z1 = p0:ToOrientation()
    local cf = CFrame.new(p0.p, p1.p)
    local x2, y2, z2 = cf:ToOrientation()
    --local d = math.deg
    if deg then
        --return Vector3.new(d(x1-x2), d(y1-y2), d(z1-z2))
    else
        return Vector3.new((x1-x2), (y1-y2), (z1-z2))
    end
end
 
function getaimbotplrs()
    plrsforaim = {}
    for i, plr in pairs(plrs:GetChildren()) do
        if plr.Character and plr.Character.Humanoid and plr.Character.Humanoid.Health > 0 and plr.Name ~= lplr.Name and plr.Character.Head then
 
            if TeamBased == true then
                if plr.Team.Name ~= lplr.Team.Name then
                    local cf = CFrame.new(game.Workspace.CurrentCamera.CFrame.p, plr.Character.Head.CFrame.p)
                    local r = Ray.new(cf, cf.LookVector * 10000)
                    local ign = {}
                    for i, v in pairs(plrs.LocalPlayer.Character:GetChildren()) do
                        if v:IsA("BasePart") then
                            table.insert(ign , v)
                        end
                    end
                    local obj = game.Workspace:FindPartOnRayWithIgnoreList(r, ign)
                    if obj.Parent == plr.Character and obj.Parent ~= lplr.Character then
                        table.insert(plrsforaim, obj)
                    end
                end
            else
                local cf = CFrame.new(game.Workspace.CurrentCamera.CFrame.p, plr.Character.Head.CFrame.p)
                local r = Ray.new(cf, cf.LookVector * 10000)
                local ign = {}
                for i, v in pairs(plrs.LocalPlayer.Character:GetChildren()) do
                    if v:IsA("BasePart") then
                        table.insert(ign , v)
                    end
                end
                local obj = game.Workspace:FindPartOnRayWithIgnoreList(r, ign)
                if obj.Parent == plr.Character and obj.Parent ~= lplr.Character then
                    table.insert(plrsforaim, obj)
                end
            end
 
 
        end
    end
end
 
function aimat(part)
    cam.CFrame = CFrame.new(cam.CFrame.p, part.CFrame.p)
end
function checkfov (part)
    local fov = getfovxyz(game.Workspace.CurrentCamera.CFrame, part.CFrame)
    local angle = math.abs(fov.X) + math.abs(fov.Y)
    return angle
end
 
game:GetService("RunService").RenderStepped:Connect(function()
    if aimatpart then
        aimat(aimatpart)
        if aimatpart.Parent == plrs.LocalPlayer.Character then
            aimatpart = nil
        end
    end
 
 
--  if switch == true then
--      local maxangle = 99999
--      
--      --print("Loop")
--      if true and raycast == false then
--          for i, plr in pairs(plrs:GetChildren()) do
--              if plr.Name ~= lplr.Name and plr.Character and plr.Character.Head and plr.Character.Humanoid and plr.Character.Humanoid.Health > 1 then
--                  if TeamBased then
--                      if plr.Team.Name ~= lplr.Team.Name or plr.Team.TeamColor ~= lplr.Team.TeamColor then
--                          local an = checkfov(plr.Character.Head)
--                          if an < maxangle then
--                              maxangle = an
--                              aimatpart = plr.Character.Head
--                              if an < lockangle then
--                                  break
--                              end
--                          end
--                      end
--                  else
--                      local an = checkfov(plr.Character.Head)
--                          if an < maxangle then
--                              maxangle = an
--                              aimatpart = plr.Character.Head
--                              if an < lockangle then
--                                  break
--                              end
--                          end
--                  end
--                  
--                  
--                  
--                  
--              end
--          end
--      elseif raycast == true then
--          
--      end
 
        if raycast == true and switch == false and not aimatpart then
            getaimbotplrs()
            aimatpart = nil
            local maxangle = 999
            for i, v in ipairs(plrsforaim) do
                if v.Parent ~= lplr.Character then
                    local an = checkfov(v)
                    if an < maxangle and v ~= lplr.Character.Head then
                        maxangle = an
                        aimatpart = v
                        print(v:GetFullName())
                        v.Parent.Humanoid.Died:connect(function()
                            aimatpart = nil
                        end)
                    end
                end
            end
 
    end
end)
delay(0, function()
    while wait(espupdatetime) do
        if autoesp == true then
            pcall(function()
            f.addesp()
            end)
        end
    end
end)
warn("loaded")

Features & Information

This is a perfect ESP for arsenal , Kinda obvious but eh it works don't it? If you need any help either put it in the comments or dms, Dms will probably respond faster. [Made by Frigid Exploits]

Community Comments (6)

ShineShineDec 4, 2021(edited)

Pretty old, but works fine. Would be nice if you could add credit to the original creator as I don't know who made it but I know it's not you.

cryotictamerelicryotictamereliJan 18, 2022(edited)

how do I use this?

jaxbowerjaxbowerFeb 6, 2022(edited)

how tyo worjk

rayyan2rayyan2Feb 20, 2022(edited)

how to do this?

ZacharyZacharyMar 12, 2022(edited)

You gotta have an executor and copy paste it inside the executor

ridethelighteningzeridethelighteningzeApr 3, 2022(edited)

does this have aimbot

More Scripts for Arsenal