VOID ELITE -  Aimbot ESP Wallbang
Key Required

VOID ELITE - Aimbot ESP Wallbang

[UPDATE] BloxStriketaska57210010taska57210010 1.9K views 4.9K executesUpdated Aug 22, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•782 lines (43958 chars)
--[[
    VOID ELITE v2.2 - SINGLE-RUN + WALLBANG + ESP
    No persistent key. Activate every launch.
    BAC Safe: anti-duplicate hooks.
]]

task.wait(4 + math.random() * 3)

-- Предотвращаем повторный запуск в одной сессии
if shared._VE_RUNNING then return end
shared._VE_RUNNING = true

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local CoreGui = game:GetService("CoreGui")
local HttpService = game:GetService("HttpService")
local StarterGui = game:GetService("StarterGui")

local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local IsMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled

local function RandName()
    local chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local name = ""
    for i = 1, math.random(10, 18) do
        name = name .. chars:sub(math.random(1, #chars), math.random(1, #chars))
    end
    return name
end

-- ==================== KEY SYSTEM (NO SAVE) ====================
local AdUrl = "https://link-center.net/7932970/uT1HQ0kwWbT5"

local function ValidateKey(key)
    if #key < 20 then return false end
    local sum = 0
    local mainPart = key:sub(1, -5)
    for i = 1, #mainPart do
        sum = sum + string.byte(mainPart, i) * (i % 7 + 1)
    end
    return (sum % 10000) == tonumber(key:sub(-4))
end

-- ==================== ACTIVATION GUI ====================
local function ShowActivation()
    local ActGui = Instance.new("ScreenGui")
    ActGui.Name = RandName(); ActGui.ResetOnSpawn = false
    ActGui.IgnoreGuiInset = true; ActGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    pcall(function() ActGui.Parent = CoreGui end)
    if not ActGui.Parent then ActGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end
    
    local ActFrame = Instance.new("Frame", ActGui)
    ActFrame.Name = RandName(); ActFrame.Size = UDim2.new(0, 300, 0, 240)
    ActFrame.Position = UDim2.new(0.5, -150, 0.5, -120)
    ActFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 16); ActFrame.BorderSizePixel = 0
    Instance.new("UICorner", ActFrame).CornerRadius = UDim.new(0, 12)
    Instance.new("UIStroke", ActFrame).Color = Color3.fromRGB(130, 40, 220)
    Instance.new("UIStroke", ActFrame).Thickness = 1.5
    
    local t = Instance.new("TextLabel", ActFrame); t.Name = RandName()
    t.Size = UDim2.new(1, 0, 0, 36); t.BackgroundColor3 = Color3.fromRGB(8, 8, 12)
    t.Font = Enum.Font.GothamBlack; t.Text = "VOID ELITE v2.2 - ACTIVATION"
    t.TextColor3 = Color3.fromRGB(160, 80, 255); t.TextSize = 16; t.BorderSizePixel = 0
    Instance.new("UICorner", t).CornerRadius = UDim.new(0, 12)
    
    local s = Instance.new("TextLabel", ActFrame); s.Name = RandName()
    s.Position = UDim2.new(0, 0, 0, 42); s.Size = UDim2.new(1, 0, 0, 48)
    s.BackgroundTransparency = 1; s.Font = Enum.Font.Gotham
    s.Text = "1. Click GET KEY\n2. Watch ad, get key\n3. Paste below → ACTIVATE"
    s.TextColor3 = Color3.fromRGB(180, 180, 190); s.TextSize = 12
    s.TextWrapped = true; s.TextXAlignment = Enum.TextXAlignment.Center
    
    local kb = Instance.new("TextBox", ActFrame); kb.Name = RandName()
    kb.Position = UDim2.new(0.08, 0, 0, 96); kb.Size = UDim2.new(0.84, 0, 0, 38)
    kb.BackgroundColor3 = Color3.fromRGB(20, 20, 26); kb.BorderSizePixel = 0
    kb.Font = Enum.Font.Gotham; kb.PlaceholderText = "VE-XXXX-XXXX-XXXX-XXXX-0000"
    kb.PlaceholderColor3 = Color3.fromRGB(100, 100, 110); kb.Text = ""
    kb.TextColor3 = Color3.new(1, 1, 1); kb.TextSize = 14; kb.ClearTextOnFocus = false
    Instance.new("UICorner", kb).CornerRadius = UDim.new(0, 8)
    
    local st = Instance.new("TextLabel", ActFrame); st.Name = RandName()
    st.Position = UDim2.new(0, 0, 0, 140); st.Size = UDim2.new(1, 0, 0, 20)
    st.BackgroundTransparency = 1; st.Font = Enum.Font.Gotham; st.Text = ""
    st.TextColor3 = Color3.fromRGB(255, 150, 50); st.TextSize = 12
    
    local gk = Instance.new("TextButton", ActFrame); gk.Name = RandName()
    gk.Position = UDim2.new(0.08, 0, 0, 166); gk.Size = UDim2.new(0.4, 0, 0, 40)
    gk.BackgroundColor3 = Color3.fromRGB(40, 150, 80); gk.Text = "GET KEY"
    gk.TextColor3 = Color3.new(1, 1, 1); gk.Font = Enum.Font.GothamBlack
    gk.TextSize = 14; gk.BorderSizePixel = 0
    Instance.new("UICorner", gk).CornerRadius = UDim.new(0, 8)
    
    local act = Instance.new("TextButton", ActFrame); act.Name = RandName()
    act.Position = UDim2.new(0.52, 0, 0, 166); act.Size = UDim2.new(0.4, 0, 0, 40)
    act.BackgroundColor3 = Color3.fromRGB(120, 40, 200); act.Text = "ACTIVATE"
    act.TextColor3 = Color3.new(1, 1, 1); act.Font = Enum.Font.GothamBlack
    act.TextSize = 14; act.BorderSizePixel = 0
    Instance.new("UICorner", act).CornerRadius = UDim.new(0, 8)
    
    gk.MouseButton1Click:Connect(function()
        pcall(function() if setclipboard then setclipboard(AdUrl) end end)
        st.Text = "Link copied! Check browser."
    end)
    
    act.MouseButton1Click:Connect(function()
        local key = kb.Text:gsub("%s", ""):upper()
        if key == "" then st.Text = "Enter a key first"; return end
        if ValidateKey(key) then
            st.Text = "Activated! Loading..."
            ActFrame.Visible = false
            task.wait(1)
            InitMainScript()
        else
            st.Text = "Invalid key format"
        end
    end)
end

-- ==================== MAIN SCRIPT ====================
function InitMainScript()
    if shared._VE_MAIN_LOADED then return end
    shared._VE_MAIN_LOADED = true
    
    task.wait(1 + math.random())
    
    local Profiles = {
        Default = {
            Aimbot = {Enabled=false,Silent=true,FOV=120,Smooth=4,AimPart="Head",SilentSpeed=0.4,SnapCooldown=0.05,LastSnapTime=0,ResolverEnabled=false,ResolverYaw=0,ResolverPitch=0,ResolverMode="Static",ResolverSpinSpeed=15,ResolverJitterRange=45},
            TriggerBot = {Enabled=false,Delay=0.04,UseKey=true,TriggerKey=Enum.KeyCode.E},
            ESP = {Enabled=false,Boxes=true,Names=true,Health=true,Distance=false,Snaplines=false,ColorEnemy=Color3.fromRGB(255,70,70),BoxStyle="Corner",NameSize=13,MaxDistance=500},
            Wallbang = {Enabled=false,MaxDistance=500},
            Hitbox = {Enabled=false,Size=3.2,Transparency=0.55,OnlyHead=true},
            Movement = {Bhop=false,BhopMinDelay=0.12,BhopMaxDelay=0.22,BhopNextJump=0,AutoStrafe=false,StrafeStrength=1.2},
            Visual = {FOVCircle=not IsMobile,FOVCircleColor=Color3.fromRGB(0,210,255),FOVCircleThickness=1.5,ThirdPerson=false,ThirdPersonDistance=8,NoRecoil=false,NoSpread=false}
        },
        HvH = {
            Aimbot = {Enabled=true,Silent=true,FOV=180,Smooth=1,AimPart="Head",SilentSpeed=0.8,SnapCooldown=0.02,LastSnapTime=0,ResolverEnabled=true,ResolverYaw=0,ResolverPitch=0,ResolverMode="Jitter",ResolverSpinSpeed=25,ResolverJitterRange=60},
            TriggerBot = {Enabled=true,Delay=0.01,UseKey=false,TriggerKey=Enum.KeyCode.E},
            ESP = {Enabled=true,Boxes=true,Names=true,Health=true,Distance=true,Snaplines=true,ColorEnemy=Color3.fromRGB(255,20,20),BoxStyle="Full",NameSize=14,MaxDistance=1000},
            Wallbang = {Enabled=true,MaxDistance=500},
            Hitbox = {Enabled=true,Size=4.5,Transparency=0.4,OnlyHead=false},
            Movement = {Bhop=true,BhopMinDelay=0.05,BhopMaxDelay=0.1,BhopNextJump=0,AutoStrafe=true,StrafeStrength=1.8},
            Visual = {FOVCircle=true,FOVCircleColor=Color3.fromRGB(255,0,80),FOVCircleThickness=2,ThirdPerson=true,ThirdPersonDistance=10,NoRecoil=true,NoSpread=true}
        },
        Legit = {
            Aimbot = {Enabled=true,Silent=false,FOV=80,Smooth=8,AimPart="Head",SilentSpeed=0.15,SnapCooldown=0.12,LastSnapTime=0,ResolverEnabled=false,ResolverYaw=0,ResolverPitch=0,ResolverMode="Static",ResolverSpinSpeed=10,ResolverJitterRange=20},
            TriggerBot = {Enabled=false,Delay=0.12,UseKey=true,TriggerKey=Enum.KeyCode.E},
            ESP = {Enabled=true,Boxes=true,Names=false,Health=true,Distance=false,Snaplines=false,ColorEnemy=Color3.fromRGB(200,200,200),BoxStyle="Corner",NameSize=13,MaxDistance=300},
            Wallbang = {Enabled=false,MaxDistance=300},
            Hitbox = {Enabled=false,Size=1.5,Transparency=0.7,OnlyHead=true},
            Movement = {Bhop=true,BhopMinDelay=0.18,BhopMaxDelay=0.28,BhopNextJump=0,AutoStrafe=false,StrafeStrength=1.0},
            Visual = {FOVCircle=true,FOVCircleColor=Color3.fromRGB(100,200,100),FOVCircleThickness=1,ThirdPerson=false,ThirdPersonDistance=6,NoRecoil=false,NoSpread=false}
        }
    }
    
    local function DeepCopy(tbl)
        local copy = {}
        for k, v in pairs(tbl) do
            if type(v) == "table" then copy[k] = DeepCopy(v) else copy[k] = v end
        end
        return copy
    end
    
    local ActiveProfile = "Default"
    local Settings = DeepCopy(Profiles.Default)
    
    local function LoadProfile(name)
        if not Profiles[name] then return end
        ActiveProfile = name
        Settings = DeepCopy(Profiles[name])
        Settings.Aimbot.LastSnapTime = 0
        Settings.Movement.BhopNextJump = 0
        if IsMobile and Settings.Aimbot.Enabled then HoldingAim = true
        elseif IsMobile then HoldingAim = false end
    end
    
    local HoldingAim = false
    local OriginalSizes = {}
    local ESPObjects = {}
    local GUIVisible = true
    local LastGuiToggle = 0
    
    local function GetEnemyFolder()
        local chars = Workspace:FindFirstChild("Characters")
        if not chars then return nil end
        local t = chars:FindFirstChild("Terrorists")
        local ct = chars:FindFirstChild("Counter-Terrorists")
        if not t or not ct then return nil end
        return t:FindFirstChild(LocalPlayer.Name) and ct or t
    end
    
    local function IsAlive(c)
        if not c then return false end
        local h = c:FindFirstChildOfClass("Humanoid")
        return h and h.Health > 0
    end
    
    local function ApplyResolver(pos)
        if not Settings.Aimbot.ResolverEnabled then return pos end
        local mode = Settings.Aimbot.ResolverMode
        if mode == "Static" then
            return pos + Vector3.new(math.sin(math.rad(Settings.Aimbot.ResolverYaw))*2, math.tan(math.rad(Settings.Aimbot.ResolverPitch))*2, math.cos(math.rad(Settings.Aimbot.ResolverYaw))*2)
        elseif mode == "Jitter" then
            local j = math.rad(math.random(-Settings.Aimbot.ResolverJitterRange, Settings.Aimbot.ResolverJitterRange)/10)
            return pos + Vector3.new(math.sin(j)*2, 0, math.cos(j)*2)
        elseif mode == "Spin" then
            local a = tick() * Settings.Aimbot.ResolverSpinSpeed
            return pos + Vector3.new(math.sin(math.rad(a % 360))*3, 0, math.cos(math.rad(a % 360))*3)
        end
        return pos
    end
    
    local function GetTarget()
        local ef = GetEnemyFolder()
        if not ef then return nil end
        local best, bestDist = nil, Settings.Aimbot.FOV
        local center = Camera.ViewportSize/2
        for _, e in ipairs(ef:GetChildren()) do
            if IsAlive(e) then
                local p = e:FindFirstChild(Settings.Aimbot.AimPart) or e:FindFirstChild("Head")
                if p then
                    local sp, onScr = Camera:WorldToViewportPoint(ApplyResolver(p.Position))
                    if onScr and sp.Z > 0 then
                        local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude
                        if d < bestDist then bestDist = d; best = p end
                    end
                end
            end
        end
        return best
    end
    
    -- ESP Functions
    local function CreateESP(enemy)
        if ESPObjects[enemy] then return end
        ESPObjects[enemy] = {
            Box = Drawing.new("Square"), BoxTL = Drawing.new("Line"), BoxTR = Drawing.new("Line"),
            BoxBL = Drawing.new("Line"), BoxBR = Drawing.new("Line"), Name = Drawing.new("Text"),
            HealthBar = Drawing.new("Square"), HealthBG = Drawing.new("Square"),
            Snapline = Drawing.new("Line"), Distance = Drawing.new("Text")
        }
        local d = ESPObjects[enemy]
        d.Box.Thickness = 1.5; d.Box.Filled = false; d.Box.Visible = false
        for _, c in ipairs({d.BoxTL, d.BoxTR, d.BoxBL, d.BoxBR}) do
            c.Thickness = 2; c.Color = Settings.ESP.ColorEnemy; c.Visible = false
        end
        d.Name.Size = Settings.ESP.NameSize; d.Name.Center = true; d.Name.Outline = true; d.Name.Visible = false
        d.HealthBar.Filled = true; d.HealthBar.Visible = false
        d.HealthBG.Filled = true; d.HealthBG.Color = Color3.new(0, 0, 0); d.HealthBG.Visible = false
        d.Snapline.Thickness = 1; d.Snapline.Visible = false
        d.Distance.Size = 12; d.Distance.Center = true; d.Distance.Outline = true; d.Distance.Visible = false
    end
    
    local function RemoveESP(enemy)
        local data = ESPObjects[enemy]
        if not data then return end
        for _, v in pairs(data) do pcall(function() v:Remove() end) end
        ESPObjects[enemy] = nil
    end
    
    local function ClearAllESP()
        for enemy in pairs(ESPObjects) do RemoveESP(enemy) end
    end
    
    local function UpdateESP()
        if not Settings.ESP.Enabled then ClearAllESP(); return end
        local enemyFolder = GetEnemyFolder()
        if not enemyFolder then ClearAllESP(); return end
        local active = {}
        for _, enemy in ipairs(enemyFolder:GetChildren()) do
            active[enemy] = true
            if IsAlive(enemy) then
                CreateESP(enemy)
                local data = ESPObjects[enemy]
                local head = enemy:FindFirstChild("Head")
                local root = enemy:FindFirstChild("HumanoidRootPart")
                local hum = enemy:FindFirstChildOfClass("Humanoid")
                if head and root and hum then
                    local top, onTop = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 1.1, 0))
                    local bottom = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 2.8, 0))
                    if onTop and top.Z > 0 then
                        local height = math.abs(top.Y - bottom.Y)
                        local width = height * 0.5
                        local x, y = top.X - width / 2, top.Y
                        local cornerLen = width * 0.25
                        if Settings.ESP.BoxStyle == "Full" then
                            data.Box.Size = Vector2.new(width, height); data.Box.Position = Vector2.new(x, y)
                            data.Box.Color = Settings.ESP.ColorEnemy; data.Box.Visible = Settings.ESP.Boxes
                            for _, c in ipairs({data.BoxTL, data.BoxTR, data.BoxBL, data.BoxBR}) do c.Visible = false end
                        else
                            data.Box.Visible = false
                            if Settings.ESP.Boxes then
                                data.BoxTL.From = Vector2.new(x, y); data.BoxTL.To = Vector2.new(x + cornerLen, y); data.BoxTL.Visible = true
                                data.BoxTR.From = Vector2.new(x + width, y); data.BoxTR.To = Vector2.new(x + width - cornerLen, y); data.BoxTR.Visible = true
                                data.BoxBL.From = Vector2.new(x, y + height); data.BoxBL.To = Vector2.new(x + cornerLen, y + height); data.BoxBL.Visible = true
                                data.BoxBR.From = Vector2.new(x + width, y + height); data.BoxBR.To = Vector2.new(x + width - cornerLen, y + height); data.BoxBR.Visible = true
                            else
                                for _, c in ipairs({data.BoxTL, data.BoxTR, data.BoxBL, data.BoxBR}) do c.Visible = false end
                            end
                        end
                        if Settings.ESP.Snaplines then
                            local sc = Camera.ViewportSize / 2
                            data.Snapline.From = Vector2.new(sc.X, Camera.ViewportSize.Y)
                            data.Snapline.To = Vector2.new(top.X, y + height)
                            data.Snapline.Color = Settings.ESP.ColorEnemy; data.Snapline.Visible = true
                        else data.Snapline.Visible = false end
                        data.Name.Text = enemy.Name; data.Name.Position = Vector2.new(top.X, y - 15)
                        data.Name.Color = Settings.ESP.ColorEnemy; data.Name.Size = Settings.ESP.NameSize; data.Name.Visible = Settings.ESP.Names
                        if Settings.ESP.Distance and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                            local dist = (root.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude
                            data.Distance.Text = string.format("%.0fm", dist)
                            data.Distance.Position = Vector2.new(top.X, y + height + 4)
                            data.Distance.Color = Color3.new(1, 1, 1); data.Distance.Visible = true
                        else data.Distance.Visible = false end
                        if Settings.ESP.Health then
                            local pct = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
                            local barH = height * pct
                            data.HealthBG.Size = Vector2.new(3, height); data.HealthBG.Position = Vector2.new(x - 6, y); data.HealthBG.Visible = true
                            data.HealthBar.Size = Vector2.new(3, barH); data.HealthBar.Position = Vector2.new(x - 6, y + height - barH)
                            data.HealthBar.Color = Color3.fromRGB(255 * (1 - pct), 255 * pct, 50); data.HealthBar.Visible = true
                        else data.HealthBar.Visible = false; data.HealthBG.Visible = false end
                    else for _, v in pairs(data) do v.Visible = false end end
                end
            else RemoveESP(enemy) end
        end
        for enemy in pairs(ESPObjects) do if not active[enemy] then RemoveESP(enemy) end end
    end
    
    local function ShootThroughWalls()
        if not Settings.Wallbang.Enabled then return end
        if not IsAlive(LocalPlayer.Character) then return end
        local origin = Camera.CFrame.Position
        local ef = GetEnemyFolder()
        if not ef then return end
        for _, enemy in ipairs(ef:GetChildren()) do
            if IsAlive(enemy) then
                local head = enemy:FindFirstChild("Head")
                if head then
                    local dist = (head.Position - origin).Magnitude
                    if dist < Settings.Wallbang.MaxDistance then
                        local dir = (head.Position - origin).Unit
                        local params = RaycastParams.new()
                        params.FilterType = Enum.RaycastFilterType.Exclude
                        params.FilterDescendantsInstances = {LocalPlayer.Character, Camera}
                        local hit = Workspace:Raycast(origin, dir * dist, params)
                        if hit and hit.Instance then
                            local model = hit.Instance:FindFirstAncestorOfClass("Model")
                            if model == enemy then
                                local screenPos = Camera:WorldToViewportPoint(head.Position)
                                pcall(function()
                                    local vim = game:GetService("VirtualInputManager")
                                    vim:SendMouseButtonEvent(screenPos.X, screenPos.Y, 0, true, game, 1)
                                    task.wait(0.03)
                                    vim:SendMouseButtonEvent(screenPos.X, screenPos.Y, 0, false, game, 1)
                                end)
                                return
                            end
                        end
                    end
                end
            end
        end
    end
    
    UserInputService.InputBegan:Connect(function(input, gpe)
        if gpe then return end
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            task.spawn(ShootThroughWalls)
        elseif input.UserInputType == Enum.UserInputType.MouseButton2 or input.KeyCode == Enum.KeyCode.Q then
            HoldingAim = true
        end
    end)
    
    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton2 or input.KeyCode == Enum.KeyCode.Q then
            HoldingAim = false
        end
    end)
    
    -- FOV Circle
    local FOVCircle = nil
    if not IsMobile then
        FOVCircle = Drawing.new("Circle")
        FOVCircle.NumSides = 48; FOVCircle.Filled = false; FOVCircle.Visible = false
    end
    
    RunService.RenderStepped:Connect(function()
        if Settings.Aimbot.Enabled and (HoldingAim or IsMobile) then
            local t = GetTarget()
            if t then
                local now = tick()
                if Settings.Aimbot.Silent or IsMobile then
                    if now - Settings.Aimbot.LastSnapTime >= Settings.Aimbot.SnapCooldown then
                        local cp = Camera.CFrame.Position
                        local tp = ApplyResolver(t.Position)
                        Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(cp, cp + (tp - cp).Unit), math.clamp(Settings.Aimbot.SilentSpeed, 0.15, 1.0))
                        Settings.Aimbot.LastSnapTime = now
                    end
                else
                    local sp = Camera:WorldToViewportPoint(ApplyResolver(t.Position))
                    local c = Camera.ViewportSize/2
                    if mousemoverel then mousemoverel((sp.X - c.X)/Settings.Aimbot.Smooth, (sp.Y - c.Y)/Settings.Aimbot.Smooth) end
                end
            end
        end
        
        if IsAlive(LocalPlayer.Character) then
            local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
            local root = LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
            if Settings.Movement.Bhop and hum then
                local nt = tick()
                if nt >= Settings.Movement.BhopNextJump and hum.FloorMaterial ~= Enum.Material.Air then
                    hum.Jump = true
                    Settings.Movement.BhopNextJump = nt + math.random()*(Settings.Movement.BhopMaxDelay - Settings.Movement.BhopMinDelay) + Settings.Movement.BhopMinDelay
                end
            end
            if Settings.Movement.AutoStrafe and hum and root and hum.FloorMaterial == Enum.Material.Air then
                local vel = root.Velocity
                local spd = Vector3.new(vel.X, 0, vel.Z).Magnitude
                if spd > 2 then
                    local dir = Camera.CFrame:VectorToWorldSpace(Vector3.new(
                        UserInputService:IsKeyDown(Enum.KeyCode.A) and -1 or UserInputService:IsKeyDown(Enum.KeyCode.D) and 1 or 0, 0,
                        UserInputService:IsKeyDown(Enum.KeyCode.W) and -1 or UserInputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0
                    )).Unit
                    root.Velocity = Vector3.new(dir.X * spd * Settings.Movement.StrafeStrength, vel.Y, dir.Z * spd * Settings.Movement.StrafeStrength)
                end
            end
        end
        
        if FOVCircle then
            FOVCircle.Position = Camera.ViewportSize/2
            FOVCircle.Radius = Settings.Aimbot.FOV
            FOVCircle.Visible = Settings.Visual.FOVCircle and Settings.Aimbot.Enabled
            FOVCircle.Color = Settings.Visual.FOVCircleColor
            FOVCircle.Thickness = Settings.Visual.FOVCircleThickness
        end
        
        UpdateESP()
    end)
    
    task.spawn(function()
        while task.wait(0.025) do
            if not Settings.TriggerBot.Enabled or not IsAlive(LocalPlayer.Character) then continue end
            if Settings.TriggerBot.UseKey and not UserInputService:IsKeyDown(Settings.TriggerBot.TriggerKey) then continue end
            local c = Camera.ViewportSize/2
            local r = Camera:ViewportPointToRay(c.X, c.Y)
            local p = RaycastParams.new()
            p.FilterType = Enum.RaycastFilterType.Exclude
            p.FilterDescendantsInstances = {LocalPlayer.Character, Camera}
            local res = Workspace:Raycast(r.Origin, r.Direction * 1000, p)
            if res and res.Instance then
                local m = res.Instance:FindFirstAncestorOfClass("Model")
                if m and IsAlive(m) then
                    local ef = GetEnemyFolder()
                    if ef and m.Parent == ef then
                        if Settings.TriggerBot.Delay > 0 then task.wait(Settings.TriggerBot.Delay) end
                        pcall(function()
                            if mouse1click then mouse1click()
                            else
                                local vim = game:GetService("VirtualInputManager")
                                vim:SendMouseButtonEvent(c.X, c.Y, 0, true, game, 1)
                                task.wait(0.03)
                                vim:SendMouseButtonEvent(c.X, c.Y, 0, false, game, 1)
                            end
                        end)
                        task.wait(0.07)
                    end
                end
            end
        end
    end)
    
    task.spawn(function()
        while task.wait(0.5) do
            local ef = GetEnemyFolder()
            if Settings.Hitbox.Enabled and ef then
                for _, e in ipairs(ef:GetChildren()) do
                    if IsAlive(e) then
                        local parts = Settings.Hitbox.OnlyHead and {e:FindFirstChild("Head")} or e:GetChildren()
                        for _, part in ipairs(parts) do
                            if part and part:IsA("BasePart") then
                                if not OriginalSizes[part] then OriginalSizes[part] = part.Size end
                                part.Size = Vector3.new(Settings.Hitbox.Size, Settings.Hitbox.Size, Settings.Hitbox.Size)
                                part.Transparency = Settings.Hitbox.Transparency
                                part.CanCollide = false
                            end
                        end
                    end
                end
            else
                for part, size in pairs(OriginalSizes) do
                    if part and part.Parent then pcall(function() part.Size = size; part.Transparency = 0 end) end
                end
            end
        end
    end)
    
    -- ==================== MAIN GUI ====================
    task.wait(2 + math.random()*2)
    
    local ScreenGui = Instance.new("ScreenGui")
    ScreenGui.Name = RandName(); ScreenGui.ResetOnSpawn = false
    ScreenGui.IgnoreGuiInset = true; ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    pcall(function() ScreenGui.Parent = CoreGui end)
    if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end
    
    local Main = Instance.new("Frame", ScreenGui)
    Main.Name = RandName(); Main.BackgroundColor3 = Color3.fromRGB(12, 12, 16); Main.BorderSizePixel = 0
    Main.Size = UDim2.new(0, 320, 0, 460)
    Main.Position = IsMobile and UDim2.new(0.02, 0, 0.10, 0) or UDim2.new(0.04, 0, 0.15, 0)
    Main.Active = true; Main.Draggable = true
    Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 10)
    Instance.new("UIStroke", Main).Color = Color3.fromRGB(130, 40, 220)
    Instance.new("UIStroke", Main).Thickness = 1.2
    
    local TitleBar = Instance.new("Frame", Main); TitleBar.Name = RandName()
    TitleBar.Size = UDim2.new(1, 0, 0, 38); TitleBar.BackgroundColor3 = Color3.fromRGB(8, 8, 12); TitleBar.BorderSizePixel = 0
    Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 10)
    local Title = Instance.new("TextLabel", TitleBar); Title.Name = RandName()
    Title.BackgroundTransparency = 1; Title.Size = UDim2.new(1, 0, 1, 0)
    Title.Font = Enum.Font.GothamBlack; Title.Text = "VOID ELITE  v2.2"
    Title.TextColor3 = Color3.fromRGB(160, 80, 255); Title.TextSize = 16
    
    local Tabs = {"Combat", "Visuals", "Movement", "Settings"}
    local TabButtons = {}; local TabFrames = {}
    local TabBar = Instance.new("Frame", Main); TabBar.Name = RandName()
    TabBar.Position = UDim2.new(0, 0, 0, 38); TabBar.Size = UDim2.new(1, 0, 0, 34)
    TabBar.BackgroundColor3 = Color3.fromRGB(10, 10, 14); TabBar.BorderSizePixel = 0
    
    for i, tabName in ipairs(Tabs) do
        local btn = Instance.new("TextButton", TabBar); btn.Name = RandName()
        btn.Size = UDim2.new(0.25, -2, 1, -4); btn.Position = UDim2.new((i-1)*0.25, 0, 0, 2)
        btn.BackgroundColor3 = i == 1 and Color3.fromRGB(120, 40, 200) or Color3.fromRGB(24, 24, 30)
        btn.Text = tabName; btn.TextColor3 = Color3.new(1, 1, 1)
        btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.BorderSizePixel = 0
        Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
        
        local frame = Instance.new("ScrollingFrame", Main); frame.Name = RandName()
        frame.Position = UDim2.new(0, 0, 0, 72); frame.Size = UDim2.new(1, -4, 1, -76)
        frame.BackgroundTransparency = 1; frame.BorderSizePixel = 0
        frame.ScrollBarThickness = 3; frame.ScrollBarImageColor3 = Color3.fromRGB(140, 60, 230)
        frame.CanvasSize = UDim2.new(0, 0, 0, 900); frame.Visible = i == 1
        TabFrames[tabName] = frame
        
        btn.MouseButton1Click:Connect(function()
            for _, b in ipairs(TabButtons) do b.BackgroundColor3 = Color3.fromRGB(24, 24, 30) end
            btn.BackgroundColor3 = Color3.fromRGB(120, 40, 200)
            for _, f in pairs(TabFrames) do f.Visible = false end
            frame.Visible = true
        end)
        table.insert(TabButtons, btn)
    end
    
    local function MakeSection(parent, title, yPos)
        local sec = Instance.new("Frame", parent); sec.Name = RandName()
        sec.Position = UDim2.new(0.04, 0, 0, yPos); sec.Size = UDim2.new(0.92, 0, 0, 24)
        sec.BackgroundTransparency = 1; sec.BorderSizePixel = 0
        local line = Instance.new("Frame", sec); line.Name = RandName()
        line.Size = UDim2.new(1, 0, 0, 1); line.Position = UDim2.new(0, 0, 0, 11)
        line.BackgroundColor3 = Color3.fromRGB(140, 60, 230); line.BorderSizePixel = 0
        local lbl = Instance.new("TextLabel", sec); lbl.Name = RandName()
        lbl.BackgroundTransparency = 1; lbl.Size = UDim2.new(1, 0, 0, 16)
        lbl.Font = Enum.Font.GothamBlack; lbl.Text = title
        lbl.TextColor3 = Color3.fromRGB(160, 100, 255); lbl.TextSize = 11
        lbl.TextXAlignment = Enum.TextXAlignment.Left
    end
    
    local function MakeToggle(parent, name, default, callback, yPos)
        local c = Instance.new("Frame", parent); c.Name = RandName()
        c.Position = UDim2.new(0.04, 0, 0, yPos); c.Size = UDim2.new(0.92, 0, 0, 30)
        c.BackgroundColor3 = Color3.fromRGB(20, 20, 26); c.BorderSizePixel = 0
        Instance.new("UICorner", c).CornerRadius = UDim.new(0, 6)
        local l = Instance.new("TextLabel", c); l.Name = RandName()
        l.BackgroundTransparency = 1; l.Position = UDim2.new(0.05, 0, 0, 0); l.Size = UDim2.new(0.55, 0, 1, 0)
        l.Font = Enum.Font.Gotham; l.Text = name; l.TextColor3 = Color3.new(0.9, 0.9, 0.9); l.TextSize = 11
        l.TextXAlignment = Enum.TextXAlignment.Left
        local b = Instance.new("TextButton", c); b.Name = RandName()
        b.Position = UDim2.new(0.65, 0, 0, 3); b.Size = UDim2.new(0.3, 0, 0, 24)
        b.BackgroundColor3 = default and Color3.fromRGB(100, 40, 170) or Color3.fromRGB(50, 50, 58)
        b.Text = default and "ON" or "OFF"; b.TextColor3 = Color3.new(1, 1, 1)
        b.Font = Enum.Font.GothamBold; b.TextSize = 11; b.BorderSizePixel = 0
        Instance.new("UICorner", b).CornerRadius = UDim.new(0, 5)
        local state = default
        b.MouseButton1Click:Connect(function()
            state = not state
            b.BackgroundColor3 = state and Color3.fromRGB(100, 40, 170) or Color3.fromRGB(50, 50, 58)
            b.Text = state and "ON" or "OFF"
            callback(state)
        end)
    end
    
    local function MakeSlider(parent, name, min, max, default, callback, yPos, suffix)
        suffix = suffix or ""
        local c = Instance.new("Frame", parent); c.Name = RandName()
        c.Position = UDim2.new(0.04, 0, 0, yPos); c.Size = UDim2.new(0.92, 0, 0, 44)
        c.BackgroundColor3 = Color3.fromRGB(20, 20, 26); c.BorderSizePixel = 0
        Instance.new("UICorner", c).CornerRadius = UDim.new(0, 6)
        local l = Instance.new("TextLabel", c); l.Name = RandName()
        l.BackgroundTransparency = 1; l.Position = UDim2.new(0.05, 0, 0, 3); l.Size = UDim2.new(0.9, 0, 0, 15)
        l.Font = Enum.Font.Gotham; l.Text = name .. ": " .. default .. suffix
        l.TextColor3 = Color3.new(0.8, 0.8, 0.8); l.TextSize = 10; l.TextXAlignment = Enum.TextXAlignment.Left
        local sf = Instance.new("Frame", c); sf.Name = RandName()
        sf.Position = UDim2.new(0.05, 0, 0, 22); sf.Size = UDim2.new(0.7, 0, 0, 6)
        sf.BackgroundColor3 = Color3.fromRGB(40, 40, 48); sf.BorderSizePixel = 0
        Instance.new("UICorner", sf).CornerRadius = UDim.new(1, 0)
        local fill = Instance.new("Frame", sf); fill.Name = RandName()
        fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
        fill.BackgroundColor3 = Color3.fromRGB(140, 60, 230); fill.BorderSizePixel = 0
        Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0)
        local knob = Instance.new("TextButton", sf); knob.Name = RandName()
        knob.Size = UDim2.new(0, 14, 0, 14); knob.Position = UDim2.new((default - min) / (max - min), -7, 0, -4)
        knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255); knob.Text = ""; knob.BorderSizePixel = 0
        Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)
        local dragging = false
        local function uk(input)
            local rx = math.clamp((input.Position.X - sf.AbsolutePosition.X) / sf.AbsoluteSize.X, 0, 1)
            local val = math.floor(min + (max - min) * rx)
            knob.Position = UDim2.new(rx, -7, 0, -4); fill.Size = UDim2.new(rx, 0, 1, 0)
            l.Text = name .. ": " .. val .. suffix; callback(val)
        end
        knob.MouseButton1Down:Connect(function() dragging = true end)
        UserInputService.InputEnded:Connect(function(input)
            if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
        end)
        UserInputService.InputChanged:Connect(function(input)
            if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then uk(input) end
        end)
        knob.InputBegan:Connect(function(input)
            if input.UserInputType == Enum.UserInputType.Touch then dragging = true end
        end)
    end
    
    local yPos = 4
    
    -- Combat Tab
    do
        local f = TabFrames["Combat"]
        MakeSection(f, "AIMBOT", 0); yPos = 28
        MakeToggle(f, "Aimbot", Settings.Aimbot.Enabled, function(v) Settings.Aimbot.Enabled = v; if IsMobile then HoldingAim = v end end, yPos); yPos = yPos + 34
        MakeToggle(f, "Silent Aim", Settings.Aimbot.Silent, function(v) Settings.Aimbot.Silent = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Aim Speed", 15, 100, Settings.Aimbot.SilentSpeed * 100, function(v) Settings.Aimbot.SilentSpeed = v / 100 end, yPos, "%"); yPos = yPos + 48
        MakeSlider(f, "FOV", 50, 350, Settings.Aimbot.FOV, function(v) Settings.Aimbot.FOV = v end, yPos); yPos = yPos + 48
        MakeSlider(f, "Smooth", 1, 10, Settings.Aimbot.Smooth, function(v) Settings.Aimbot.Smooth = v end, yPos); yPos = yPos + 48
        
        MakeSection(f, "RESOLVER", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "Resolver", Settings.Aimbot.ResolverEnabled, function(v) Settings.Aimbot.ResolverEnabled = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Yaw Offset", -180, 180, Settings.Aimbot.ResolverYaw, function(v) Settings.Aimbot.ResolverYaw = v end, yPos, "°"); yPos = yPos + 48
        
        MakeSection(f, "TRIGGERBOT", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "TriggerBot", Settings.TriggerBot.Enabled, function(v) Settings.TriggerBot.Enabled = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Delay", 0, 200, Settings.TriggerBot.Delay * 1000, function(v) Settings.TriggerBot.Delay = v / 1000 end, yPos, "ms"); yPos = yPos + 48
        
        MakeSection(f, "WALLBANG", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "Shoot Through Walls", Settings.Wallbang.Enabled, function(v) Settings.Wallbang.Enabled = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Max Distance", 100, 1000, Settings.Wallbang.MaxDistance, function(v) Settings.Wallbang.MaxDistance = v end, yPos, "m"); yPos = yPos + 48
        
        MakeSection(f, "HITBOX", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "Hitbox Expander", Settings.Hitbox.Enabled, function(v) Settings.Hitbox.Enabled = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Size", 1, 10, Settings.Hitbox.Size, function(v) Settings.Hitbox.Size = v end, yPos, "x"); yPos = yPos + 48
    end
    
    -- Visuals Tab
    do
        local f = TabFrames["Visuals"]
        MakeSection(f, "ESP", 0); yPos = 28
        MakeToggle(f, "ESP", Settings.ESP.Enabled, function(v) Settings.ESP.Enabled = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "Boxes", Settings.ESP.Boxes, function(v) Settings.ESP.Boxes = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "Names", Settings.ESP.Names, function(v) Settings.ESP.Names = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "Health Bar", Settings.ESP.Health, function(v) Settings.ESP.Health = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "Distance", Settings.ESP.Distance, function(v) Settings.ESP.Distance = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "Snaplines", Settings.ESP.Snaplines, function(v) Settings.ESP.Snaplines = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Max Dist", 50, 1000, Settings.ESP.MaxDistance, function(v) Settings.ESP.MaxDistance = v end, yPos, "m"); yPos = yPos + 56
        
        MakeSection(f, "FOV CIRCLE", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "FOV Circle", Settings.Visual.FOVCircle, function(v) Settings.Visual.FOVCircle = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Thickness", 1, 5, Settings.Visual.FOVCircleThickness, function(v) Settings.Visual.FOVCircleThickness = v end, yPos); yPos = yPos + 56
        
        MakeSection(f, "WORLD", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "Third Person", Settings.Visual.ThirdPerson, function(v)
            Settings.Visual.ThirdPerson = v
            pcall(function() LocalPlayer.CameraMode = v and Enum.CameraMode.Classic or Enum.CameraMode.LockFirstPerson end)
        end, yPos); yPos = yPos + 34
        MakeSlider(f, "TP Distance", 3, 20, Settings.Visual.ThirdPersonDistance, function(v)
            Settings.Visual.ThirdPersonDistance = v
            pcall(function() LocalPlayer.CameraMaxZoomDistance = v end)
        end, yPos, "m"); yPos = yPos + 56
        MakeToggle(f, "No Recoil", Settings.Visual.NoRecoil, function(v) Settings.Visual.NoRecoil = v end, yPos); yPos = yPos + 34
        MakeToggle(f, "No Spread", Settings.Visual.NoSpread, function(v) Settings.Visual.NoSpread = v end, yPos); yPos = yPos + 60
    end
    
    -- Movement Tab
    do
        local f = TabFrames["Movement"]
        MakeSection(f, "BHOP", 0); yPos = 28
        MakeToggle(f, "Bunny Hop", Settings.Movement.Bhop, function(v) Settings.Movement.Bhop = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Min Delay", 50, 200, Settings.Movement.BhopMinDelay * 1000, function(v) Settings.Movement.BhopMinDelay = v / 1000 end, yPos, "ms"); yPos = yPos + 48
        MakeSlider(f, "Max Delay", 100, 350, Settings.Movement.BhopMaxDelay * 1000, function(v) Settings.Movement.BhopMaxDelay = v / 1000 end, yPos, "ms"); yPos = yPos + 48
        
        MakeSection(f, "AUTO STRAFE", yPos + 6); yPos = yPos + 34
        MakeToggle(f, "Auto Strafe", Settings.Movement.AutoStrafe, function(v) Settings.Movement.AutoStrafe = v end, yPos); yPos = yPos + 34
        MakeSlider(f, "Strength", 50, 200, Settings.Movement.StrafeStrength * 100, function(v) Settings.Movement.StrafeStrength = v / 100 end, yPos, "%"); yPos = yPos + 60
    end
    
    -- Settings Tab
    do
        local f = TabFrames["Settings"]
        MakeSection(f, "PROFILES", 0); yPos = 28
        local pnames = {"Default", "HvH", "Legit"}
        local pbtns = {}
        for i, n in ipairs(pnames) do
            local b = Instance.new("TextButton", f); b.Name = RandName()
            b.Position = UDim2.new(0.04 + (i-1)*0.32, 0, 0, yPos); b.Size = UDim2.new(0.28, 0, 0, 30)
            b.BackgroundColor3 = n == ActiveProfile and Color3.fromRGB(120, 40, 200) or Color3.fromRGB(30, 30, 38)
            b.Text = n; b.TextColor3 = Color3.new(1, 1, 1); b.Font = Enum.Font.GothamBold
            b.TextSize = 12; b.BorderSizePixel = 0
            Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
            b.MouseButton1Click:Connect(function()
                LoadProfile(n)
                for _, pb in ipairs(pbtns) do pb.BackgroundColor3 = Color3.fromRGB(30, 30, 38) end
                b.BackgroundColor3 = Color3.fromRGB(120, 40, 200)
            end)
            table.insert(pbtns, b)
        end
        yPos = yPos + 40
        
        MakeSection(f, "SYSTEM", yPos + 6); yPos = yPos + 34
        local ub = Instance.new("TextButton", f); ub.Name = RandName()
        ub.Position = UDim2.new(0.04, 0, 0, yPos); ub.Size = UDim2.new(0.92, 0, 0, 36)
        ub.BackgroundColor3 = Color3.fromRGB(80, 20, 20); ub.Text = "UNLOAD VOID ELITE"
        ub.TextColor3 = Color3.fromRGB(255, 100, 100); ub.Font = Enum.Font.GothamBlack; ub.TextSize = 13; ub.BorderSizePixel = 0
        Instance.new("UICorner", ub).CornerRadius = UDim.new(0, 8)
        ub.MouseButton1Click:Connect(function()
            ClearAllESP()
            if FOVCircle then FOVCircle:Remove() end
            for part, size in pairs(OriginalSizes) do
                if part and part.Parent then pcall(function() part.Size = size; part.Transparency = 0 end) end
            end
            OriginalSizes = {}
            shared._VE_RUNNING = false
            shared._VE_MAIN_LOADED = false
            ScreenGui:Destroy()
        end)
    end
    
    -- Toggle button
    local ToggleBtn = Instance.new("TextButton", ScreenGui); ToggleBtn.Name = RandName()
    ToggleBtn.Size = UDim2.new(0, 48, 0, 48); ToggleBtn.Position = UDim2.new(1, -62, 0, 80)
    ToggleBtn.BackgroundColor3 = Color3.fromRGB(130, 40, 220); ToggleBtn.Text = "VE"
    ToggleBtn.TextColor3 = Color3.new(1, 1, 1); ToggleBtn.Font = Enum.Font.GothamBlack; ToggleBtn.TextSize = 17; ToggleBtn.BorderSizePixel = 0
    Instance.new("UICorner", ToggleBtn).CornerRadius = UDim.new(1, 0)
    Instance.new("UIStroke", ToggleBtn).Color = Color3.fromRGB(200, 150, 255)
    Instance.new("UIStroke", ToggleBtn).Thickness = 1.5
    
    ToggleBtn.MouseButton1Click:Connect(function()
        local now = tick()
        if now - LastGuiToggle < 0.3 then return end
        LastGuiToggle = now; GUIVisible = not GUIVisible; Main.Visible = GUIVisible
    end)
    
    UserInputService.InputBegan:Connect(function(input, gpe)
        if gpe then return end
        if input.KeyCode == Enum.KeyCode.RightShift then
            local now = tick()
            if now - LastGuiToggle < 0.3 then return end
            LastGuiToggle = now; GUIVisible = not GUIVisible; Main.Visible = GUIVisible
        end
    end)
    
    LoadProfile("Default")
    StarterGui:SetCore("SendNotification", {
        Title = "Void Elite v2.2",
        Text = "Loaded! Press VE or RightShift for menu",
        Duration = 5
    })
    print("[VE] v2.2 GUI + Wallbang + ESP active. Single-run mode.")
end

-- Запуск
ShowActivation()

Features & Information

VOID ELITE — PREMIUM BLOXSTRIKE SCRIPT Mobile + PC | Delta Compatible ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 COMBAT ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Silent Aimbot with 180 FOV • HvH Resolver (Jitter / Static / Spin) • Shoot Through Walls (Wallbang) • TriggerBot with custom delay • Hitbox Expander • Aim Speed / FOV / Smooth sliders ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 👁 VISUALS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • ESP (Boxes, Names, Health Bar, Distance) • Snaplines • FOV Circle (custom color + thickness) • Third Person • No Recoil / No Spread ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🏃 MOVEMENT ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Bunny Hop with min/max delay control • Auto Strafe with strength slider ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚙ SETTINGS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 3 Config Profiles: • Default — balanced • HvH — aggressive, all features ON • Legit — smooth, low FOV, no silent • Clean GUI with tabs • Unload button ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔑 HOW TO GET ACCESS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Click GET KEY below 2. Complete the ad 3. Copy your key 4. Paste it into the activation window 5. Enjoy! ────────────────────────────── Working on BloxStrike Updated for BAC Alpha-3B

Community Comments (1)

lazizhlazizhSep 6, 2026

uses key clickbait

More Scripts for [UPDATE] BloxStrike