Counter Blox Script GUI ESP Exploit! [πŸŽ„]Β UPD 2026

Counter Blox scripts are custom Lua scripts used in the Roblox game Counter Blox to enhance gameplay with features like aimbot, ESP, gun mods, and movement assistance. This script provides a simple aim-assist cheat along with a few additional gameplay-enhancing features. It includes a lightweight GUI that can be toggled by pressing J, and it will only appear once you have fully loaded into a game.

To enable or disable features, open the in-game chat and use your cursor to interact with the menu. These scripts are mainly used by players looking for competitive advantages or practice tools.

Key Features of Counter Blox Scripts

Most trending Counter Blox scripts offer the following features:

  • Aimbot / Legitbot – Improves aim accuracy with adjustable FOV and smoothness
  • ESP (Wallhack) – Shows enemy location, health, distance, and weapons
  • Gun Mods – No recoil, no spread, instant reload
  • BHop (Bunny Hop) – Automatic jumping for faster movement
  • Anti-Vote Kick – Helps avoid vote kicks in public servers
  • Custom GUI – Easy-to-use script interface with toggles
  • Closet Cheating Options – Subtle features for legit gameplay (seen in GitHub scripts like Alora)

πŸ“œ Counter Blox Script Code

-- Script taken from https://xenoscripts.com website --

loadstring([[
local P=game:GetService("Players")
local R=game:GetService("RunService")
local U=game:GetService("UserInputService")
local LP=P.LocalPlayer
local C=workspace.CurrentCamera
local settings={autoAim=false,noclip=false,fly=false,speed=105,wallHack=false}
local pg=LP:WaitForChild("PlayerGui")
local sg=Instance.new("ScreenGui",pg)
sg.Name="CustomMenu"
local f=Instance.new("Frame")
f.Size=UDim2.new(0,400,0,310)
f.Position=UDim2.new(0.5,-200,0.5,-155)
f.BackgroundColor3=Color3.new(0,0,0)
f.BorderColor3=Color3.new(1,1,1)
f.BorderSizePixel=2
f.Parent=sg

local function createToggle(t,y,i)
    local c=Instance.new("Frame")
    c.Size=UDim2.new(1,-20,0,50)
    c.Position=UDim2.new(0,10,0,y)
    c.BackgroundTransparency=1
    c.Parent=f
    local l=Instance.new("TextLabel")
    l.Text=t
    l.Font=Enum.Font.SourceSans
    l.TextSize=18
    l.TextColor3=Color3.new(1,1,1)
    l.BackgroundTransparency=1
    l.Size=UDim2.new(0.5,0,1,0)
    l.TextXAlignment=Enum.TextXAlignment.Left
    l.Parent=c
    local tg=Instance.new("Frame")
    tg.Size=UDim2.new(0,70,0,40)
    tg.Position=UDim2.new(0.7,0,0.1,0)
    tg.BackgroundColor3=Color3.new(1,1,1)
    tg.BorderColor3=Color3.new(1,1,1)
    tg.Parent=c
    local tc=Instance.new("Frame")
    tc.Size=UDim2.new(0,34,0,34)
    tc.Position=i and UDim2.new(1,-34,0,3) or UDim2.new(0,0,0,3)
    tc.BackgroundColor3=i and Color3.fromRGB(44,169,72) or Color3.fromRGB(180,180,180)
    tc.BorderColor3=Color3.new(1,1,1)
    tc.Parent=tg
    local tog=i
    local function updateVisual()
        tc.Position=tog and UDim2.new(1,-34,0,3) or UDim2.new(0,0,0,3)
        tc.AnchorPoint=Vector2.new(tog and 1 or 0,0)
        tc.BackgroundColor3=tog and Color3.fromRGB(44,169,72) or Color3.fromRGB(180,180,180)
    end
    tg.InputBegan:Connect(function(input)
        if input.UserInputType==Enum.UserInputType.MouseButton1 then
            tog=not tog
            updateVisual()
            f:SetAttribute(t,tog)
        end
    end)
    updateVisual()
    return {get=function()return tog end,set=function(v) tog=v updateVisual() end}
end

local function createSlider(t,y,min,max,i)
    local c=Instance.new("Frame")
    c.Size=UDim2.new(1,-20,0,60)
    c.Position=UDim2.new(0,10,0,y)
    c.BackgroundTransparency=1
    c.Parent=f
    local l=Instance.new("TextLabel")
    l.Text=t
    l.Font=Enum.Font.SourceSans
    l.TextSize=18
    l.TextColor3=Color3.new(1,1,1)
    l.BackgroundTransparency=1
    l.Size=UDim2.new(0.3,0,0.4,0)
    l.TextXAlignment=Enum.TextXAlignment.Left
    l.Parent=c
    local vl=Instance.new("TextLabel")
    vl.Text=tostring(i)
    vl.Font=Enum.Font.SourceSans
    vl.TextSize=18
    vl.TextColor3=Color3.new(1,1,1)
    vl.BackgroundTransparency=1
    vl.Size=UDim2.new(0.1,0,0.4,0)
    vl.Position=UDim2.new(0.85,0,0,0)
    vl.Parent=c
    local sb=Instance.new("Frame")
    sb.Size=UDim2.new(0.9,0,0.3,0)
    sb.Position=UDim2.new(0,0,0.5,0)
    sb.BackgroundColor3=Color3.new(1,1,1)
    sb.BorderColor3=Color3.new(1,1,1)
    sb.Parent=c
    local sk=Instance.new("Frame")
    sk.Size=UDim2.new(0,24,1,0)
    sk.Position=UDim2.new((i-min)/(max-min),-12,0,0)
    sk.BackgroundColor3=Color3.fromRGB(255,0,0)
    sk.BorderColor3=Color3.new(1,1,1)
    sk.Parent=sb
    sk.Active=true
    sk.Draggable=true
    local d=false
    sk.InputBegan:Connect(function(input)
        if input.UserInputType==Enum.UserInputType.MouseButton1 then
            d=true
        end
    end)
    sk.InputEnded:Connect(function(input)
        if input.UserInputType==Enum.UserInputType.MouseButton1 then
            d=false
        end
    end)
    U.InputChanged:Connect(function(input)
        if d and input.UserInputType==Enum.UserInputType.MouseMovement then
            local rx=math.clamp(input.Position.X-sb.AbsolutePosition.X,0,sb.AbsoluteSize.X)
            local p=rx/sb.AbsoluteSize.X
            sk.Position=UDim2.new(p,-12,0,0)
            local v=math.floor(min+(max-min)*p+0.5)
            vl.Text=tostring(v)
            f:SetAttribute(t,v)
        end
    end)
    return {get=function()return tonumber(vl.Text)end,set=function(v)
        v=math.clamp(v,min,max)
        local p=(v-min)/(max-min)
        sk.Position=UDim2.new(p,-12,0,0)
        vl.Text=tostring(v)
    end}
end

local autoAimToggle=createToggle("auto aim (hold RMB)",10,false)
local noclipToggle=createToggle("noclip",70,false)
local flyToggle=createToggle("fly",130,false)
local speedSlider=createSlider("speed",190,0,200,105)
local wallHackToggle=createToggle("wall hack",260,false)

U.InputBegan:Connect(function(input,gp)
    if gp then return end
    if input.KeyCode==Enum.KeyCode.J then
        f.Visible=not f.Visible
    end
end)

local AIM_PART="Head"

local function getClosestEnemy()
    local c=nil
    local sd=150
    local mpos=U:GetMouseLocation()
    for _,pl in ipairs(P:GetPlayers())do
        if pl~=LP and pl.Team~=LP.Team and pl.Character and pl.Character:FindFirstChild(AIM_PART)then
            local part=pl.Character[AIM_PART]
            local sp,onScreen=C:WorldToViewportPoint(part.Position)
            if onScreen then
                local dist=(Vector2.new(sp.X,sp.Y)-Vector2.new(mpos.X,mpos.Y)).Magnitude
                if dist<sd then
                    sd=dist
                    c=part
                end
            end
        end
    end
    return c
end

R.RenderStepped:Connect(function()
    if autoAimToggle.get()and U:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)then
        local target=getClosestEnemy()
        if target then
            C.CFrame=CFrame.new(C.CFrame.Position,target.Position)
        end
    end
end)

R.Stepped:Connect(function()
    if noclipToggle.get()and LP.Character then
        for _,p in ipairs(LP.Character:GetDescendants())do
            if p:IsA("BasePart")then
                p.CanCollide=false
            end
        end
    end
end)

local flyingKeys={[Enum.KeyCode.W]=Vector3.new(0,0,1),[Enum.KeyCode.S]=Vector3.new(0,0,-1),[Enum.KeyCode.A]=Vector3.new(-1,0,0),[Enum.KeyCode.D]=Vector3.new(1,0,0),[Enum.KeyCode.Space]=Vector3.new(0,1,0),[Enum.KeyCode.LeftControl]=Vector3.new(0,-1,0)}
local flyingDirectionsPressed={}
U.InputBegan:Connect(function(input)
    if flyToggle.get()and flyingKeys[input.KeyCode]then
        flyingDirectionsPressed[input.KeyCode]=true
    end
end)
U.InputEnded:Connect(function(input)
    if flyToggle.get()and flyingKeys[input.KeyCode]then
        flyingDirectionsPressed[input.KeyCode]=nil
    end
end)
R.RenderStepped:Connect(function()
    if flyToggle.get()and LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")then
        local root=LP.Character.HumanoidRootPart
        local velocity=Vector3.new(0,0,0)
        for k,v in pairs(flyingDirectionsPressed)do
            velocity=velocity+flyingKeys[k]
        end
        root.Velocity=velocity*speedSlider.get()
    end
end)
]])()
Counter Blox Script

Compatible Executors

How to Use Counter Blox Script in Roblox?

Counter Blox Script use Roblox executors like Delta or Krnl Executor to hook into the game’s functions. Once injected, the script reads the current letter prompt, accesses a built-in word library, and submits valid words instantly, maximizing speed and accuracy.

Steps:

  1. Download Delta Executor or KRNl.
  2. Open Roblox and join game.
  3. Launch Executor.
  4. Copy the ink game script from the list above and past it to execute.
  5. Press Execute, features like Auto Win, Glass ESP, and Godmode will activate instantly.

Works on PC, Android, and iOS.

FAQs – Counter Blox Scripts

Q1: Are Counter Blox scripts free?
Yes, most scripts found on GitHub, ScriptBlox, and Rscripts are free.

Q2: Can Counter Blox scripts get my account banned?
Yes. Using scripts violates Roblox’s Terms of Service and can result in temporary or permanent bans.

Q3: Which features are most popular?
Aimbot, ESP, gun mods, and legitbot features are the most searched and used.

Q4: Do scripts still work in 2025?
Some do, but many older scripts are patched. Updated scripts from active developers work better.

Q5: Are YouTube Counter Blox scripts safe?
Not always. Many videos are outdated or use fake Pastebin links. Always verify the source.