--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
Modifications: Re-engineered Triggerbot tracking architecture for rapid micro-second spam execution.
]]
-- 1. TERMINATION CHECKER (Cleans up previous runs)
local GLOBAL_TAG = "MyCustomScript_UniqueTag"
if _G[GLOBAL_TAG] then
pcall(_G[GLOBAL_TAG].Disconnect)
_G[GLOBAL_TAG] = nil
end
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local camera = Workspace.CurrentCamera
-- Configuration Settings
local Settings = {
ESPEnabled = true,
HeadDotEnabled = true,
RadarEnabled = true,
TriggerbotEnabled = false,
TriggerDelay = 0.0, -- Set to 0 for instant frame-perfect execution
FOVEnabled = true,
FOVRadius = 100
}
local CT_COLOR = Color3.fromRGB(100, 150, 255)
local T_COLOR = Color3.fromRGB(255, 80, 80)
local LOW_HP = Color3.fromRGB(255, 64, 64)
local HIGH_HP = Color3.fromRGB(64, 255, 64)
-- Shared cleanups container
local ScriptConnections = {}
local function NormalizeTeam(raw)
local s = string.lower(tostring(raw or "")):gsub("[%s_]+", "")
if s == "counter-terrorists" or s == "counterterrorists" or s == "ct" then return "CT" end
if s == "terrorists" or s == "terrorist" or s == "t" then return "T" end
return nil
end
local function GetTeam(plr)
if not plr then return nil end
local fromAttr = plr:GetAttribute("Team")
if fromAttr then return NormalizeTeam(fromAttr) end
local teamObj = plr.Team
if typeof(teamObj) == "Instance" then return NormalizeTeam(teamObj.Name) end
return NormalizeTeam(teamObj)
end
local function IsPlaying(team)
return team == "CT" or team == "T"
end
local function GetChar(plr)
if not plr then return nil end
local c = plr.Character
if c and c:FindFirstChildOfClass("Humanoid") then return c end
local chars = Workspace:FindFirstChild("Characters")
if chars then
local named = chars:FindFirstChild(plr.Name)
if named and named:IsA("Model") and named:FindFirstChildOfClass("Humanoid") then return named end
end
return c
end
local function GetRoot(char)
if not char then return nil end
return char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("UpperTorso")
or char:FindFirstChild("Torso")
end
local function MakeSquare(color, thickness, filled)
local s = Drawing.new("Square")
s.Color = color or Color3.new(1,1,1)
s.Thickness = thickness or 1
s.Filled = filled or false
s.Visible = false
return s
end
local function MakeCircle(color, radius, filled)
local c = Drawing.new("Circle")
c.Color = color or Color3.new(1,1,1)
c.Radius = radius or 4
c.Filled = filled or true
c.Thickness = 1
c.Visible = false
return c
end
local Cache = {}
local function GetCache(plr)
if Cache[plr] then return Cache[plr] end
local c = {}
c.BoxOutline = MakeSquare(Color3.new(0,0,0), 3, false)
c.Box = MakeSquare(Color3.new(1,1,1), 1.5, false)
c.HpBG = MakeSquare(Color3.new(0,0,0), 1, true)
c.HpBar = MakeSquare(HIGH_HP, 1, true)
c.HeadDot = MakeCircle(Color3.new(1,1,1), 4, true)
c.RadarDot = MakeCircle(Color3.new(1,1,1), 3.5, true)
c.All = { c.BoxOutline, c.Box, c.HpBG, c.HpBar, c.HeadDot, c.RadarDot }
Cache[plr] = c
return c
end
local function HideAll(c)
for _, d in ipairs(c.All) do d.Visible = false end
end
local function DestroyCache(plr)
local c = Cache[plr]
if not c then return end
for _, d in ipairs(c.All) do pcall(d.Remove, d) end
Cache[plr] = nil
end
local function GetBounds(char)
local root = GetRoot(char)
if not root then return nil end
local head = char:FindFirstChild("Head")
local rootPos = root.Position
local topY = head and math.max(head.Position.Y + head.Size.Y * 0.5, rootPos.Y + 3) or rootPos.Y + 3
local lFoot = char:FindFirstChild("LeftFoot") or char:FindFirstChild("LeftLowerLeg") or char:FindFirstChild("Left Leg")
local botY = lFoot and (lFoot.Position.Y - lFoot.Size.Y * 0.5) or (rootPos.Y - 3)
local height = math.max(topY - botY, 1)
local centerY = (topY + botY) * 0.5
return CFrame.new(rootPos.X, centerY, rootPos.Z), Vector3.new(4, height, 4)
end
local function ProjectBox(cam, cf, size)
local hx, hy, hz = size.X*0.5, size.Y*0.5, size.Z*0.5
local corners = {
cf*Vector3.new(-hx, hy,-hz), cf*Vector3.new( hx, hy,-hz),
cf*Vector3.new( hx, hy, hz), cf*Vector3.new(-hx, hy, hz),
cf*Vector3.new(-hx,-hy,-hz), cf*Vector3.new( hx,-hy,-hz),
cf*Vector3.new( hx,-hy, hz), cf*Vector3.new(-hx,-hy, hz),
}
local minX, minY = math.huge, math.huge
local maxX, maxY = -math.huge, -math.huge
local vp = cam.ViewportSize
local visible = 0
for _, corner in ipairs(corners) do
local p, _ = cam:WorldToViewportPoint(corner)
if p.Z > 0 then
visible = visible + 1
local cx = math.clamp(p.X, 0, vp.X)
local cy = math.clamp(p.Y, 0, vp.Y)
if cx < minX then minX = cx end
if cy maxX then maxX = cx end
if cy > maxY then maxY = cy end
end
end
if visible == 0 then return nil end
return minX, minY, maxX, maxY
end
-- Screen elements removal tracking
local ExistingUI = CoreGui:FindFirstChild("MyTriggerbotGui")
if ExistingUI then ExistingUI:Destroy() end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "MyTriggerbotGui"
pcall(function() ScreenGui.Parent = CoreGui end)
-- Visual FOV Ring
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1
FOVCircle.NumSides = 60
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Filled = false
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Visible = Settings.FOVEnabled
-- Radar UI Canvas Objects
local RadarSize = 150
local RadarCenter = Vector2.new(300, 200)
local RadarBG = Drawing.new("Square")
RadarBG.Size = Vector2.new(RadarSize, RadarSize)
RadarBG.Color = Color3.fromRGB(20, 20, 20)
RadarBG.Filled = true
RadarBG.Thickness = 0
RadarBG.Transparency = 0.75
RadarBG.Visible = Settings.RadarEnabled
local RadarBorder = Drawing.new("Square")
RadarBorder.Size = Vector2.new(RadarSize, RadarSize)
RadarBorder.Color = Color3.fromRGB(60, 60, 60)
RadarBorder.Filled = false
RadarBorder.Thickness = 2
RadarBorder.Visible = Settings.RadarEnabled
local RadarLineV = Drawing.new("Line")
RadarLineV.Color = Color3.fromRGB(50, 50, 50)
RadarLineV.Thickness = 1
RadarLineV.Visible = Settings.RadarEnabled
local RadarLineH = Drawing.new("Line")
RadarLineH.Color = Color3.fromRGB(50, 50, 50)
RadarLineH.Thickness = 1
RadarLineH.Visible = Settings.RadarEnabled
local RadarCenterDot = Drawing.new("Circle")
RadarCenterDot.Radius = 3
RadarCenterDot.Color = Color3.fromRGB(255, 255, 255)
RadarCenterDot.Filled = true
RadarCenterDot.Visible = Settings.RadarEnabled
-- Interface Design
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 220, 0, 280)
MainFrame.Position = UDim2.new(0.05, 0, 0.4, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.BorderSizePixel = 2
MainFrame.BorderColor3 = Color3.fromRGB(60, 60, 60)
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Text = "Menu Options"
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 18
Title.Parent = MainFrame
local ESPButton = Instance.new("TextButton")
ESPButton.Size = UDim2.new(0.9, 0, 0, 30)
ESPButton.Position = UDim2.new(0.05, 0, 0, 40)
ESPButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
ESPButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ESPButton.Text = "ESP: ON"
ESPButton.Font = Enum.Font.SourceSansBold
ESPButton.TextSize = 16
ESPButton.Parent = MainFrame
local DotButton = Instance.new("TextButton")
DotButton.Size = UDim2.new(0.9, 0, 0, 30)
DotButton.Position = UDim2.new(0.05, 0, 0, 80)
DotButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
DotButton.TextColor3 = Color3.fromRGB(255, 255, 255)
DotButton.Text = "Head Dot: ON"
DotButton.Font = Enum.Font.SourceSansBold
DotButton.TextSize = 16
DotButton.Parent = MainFrame
local RadarBtn = Instance.new("TextButton")
RadarBtn.Size = UDim2.new(0.9, 0, 0, 30)
RadarBtn.Position = UDim2.new(0.05, 0, 0, 120)
RadarBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
RadarBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
RadarBtn.Text = "2D Radar: ON"
RadarBtn.Font = Enum.Font.SourceSansBold
RadarBtn.TextSize = 16
RadarBtn.Parent = MainFrame
local TrigButton = Instance.new("TextButton")
TrigButton.Size = UDim2.new(0.9, 0, 0, 30)
TrigButton.Position = UDim2.new(0.05, 0, 0, 160)
TrigButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
TrigButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TrigButton.Text = "Triggerbot: OFF"
TrigButton.Font = Enum.Font.SourceSansBold
TrigButton.TextSize = 16
TrigButton.Parent = MainFrame
local FOVButton = Instance.new("TextButton")
FOVButton.Size = UDim2.new(0.9, 0, 0, 30)
FOVButton.Position = UDim2.new(0.05, 0, 0, 200)
FOVButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
FOVButton.TextColor3 = Color3.fromRGB(255, 255, 255)
FOVButton.Text = "FOV Circle: ON"
FOVButton.Font = Enum.Font.SourceSansBold
FOVButton.TextSize = 16
FOVButton.Parent = MainFrame
local DelayLabel = Instance.new("TextLabel")
DelayLabel.Size = UDim2.new(0.6, 0, 0, 30)
DelayLabel.Position = UDim2.new(0.05, 0, 0, 240)
DelayLabel.BackgroundTransparency = 1
DelayLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
DelayLabel.Text = "Delay (0.00-0.5s):"
DelayLabel.Font = Enum.Font.SourceSans
DelayLabel.TextSize = 16
DelayLabel.TextXAlignment = Enum.TextXAlignment.Left
DelayLabel.Parent = MainFrame
local DelayInput = Instance.new("TextBox")
DelayInput.Size = UDim2.new(0.3, 0, 0, 30)
DelayInput.Position = UDim2.new(0.65, 0, 0, 240)
DelayInput.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
DelayInput.TextColor3 = Color3.fromRGB(255, 255, 255)
DelayInput.Text = tostring(Settings.TriggerDelay)
DelayInput.Font = Enum.Font.SourceSansBold
DelayInput.TextSize = 16
DelayInput.Parent = MainFrame
-- Interactive Handlers
ESPButton.MouseButton1Click:Connect(function()
Settings.ESPEnabled = not Settings.ESPEnabled
if Settings.ESPEnabled then
ESPButton.Text = "ESP: ON"
ESPButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
else
ESPButton.Text = "ESP: OFF"
ESPButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
for _, plr in ipairs(Players:GetPlayers()) do
if Cache[plr] then HideAll(Cache[plr]) end
end
end
end)
DotButton.MouseButton1Click:Connect(function()
Settings.HeadDotEnabled = not Settings.HeadDotEnabled
if Settings.HeadDotEnabled then
DotButton.Text = "Head Dot: ON"
DotButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
else
DotButton.Text = "Head Dot: OFF"
DotButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
for _, plr in ipairs(Players:GetPlayers()) do
if Cache[plr] then Cache[plr].HeadDot.Visible = false end
end
end
end)
RadarBtn.MouseButton1Click:Connect(function()
Settings.RadarEnabled = not Settings.RadarEnabled
RadarBtn.Text = Settings.RadarEnabled and "2D Radar: ON" or "2D Radar: OFF"
RadarBtn.BackgroundColor3 = Settings.RadarEnabled and Color3.fromRGB(50, 150, 50) or Color3.fromRGB(150, 50, 50)
RadarBG.Visible = Settings.RadarEnabled
RadarBorder.Visible = Settings.RadarEnabled
RadarLineV.Visible = Settings.RadarEnabled
RadarLineH.Visible = Settings.RadarEnabled
RadarCenterDot.Visible = Settings.RadarEnabled
if not Settings.RadarEnabled then
for _, plr in ipairs(Players:GetPlayers()) do
if Cache[plr] then Cache[plr].RadarDot.Visible = false end
end
end
end)
TrigButton.MouseButton1Click:Connect(function()
Settings.TriggerbotEnabled = not Settings.TriggerbotEnabled
if Settings.TriggerbotEnabled then
TrigButton.Text = "Triggerbot: ON"
TrigButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
else
TrigButton.Text = "Triggerbot: OFF"
TrigButton.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
end
end)
FOVButton.MouseButton1Click:Connect(function()
Settings.FOVEnabled = not Settings.FOVEnabled
FOVButton.Text = Settings.FOVEnabled and "FOV Circle: ON" or "FOV Circle: OFF"
FOVButton.BackgroundColor3 = Settings.FOVEnabled and Color3.fromRGB(50, 150, 50) or Color3.fromRGB(150, 50, 50)
FOVCircle.Visible = Settings.FOVEnabled
end)
DelayInput.FocusLost:Connect(function()
local val = tonumber(DelayInput.Text)
if val then
Settings.TriggerDelay = math.clamp(val, 0.0, 0.5)
end
DelayInput.Text = tostring(Settings.TriggerDelay)
end)
-- Main Render Loops
local MAX_DIST = 2500
local RadarRange = 250
local espConnection
espConnection = RunService.RenderStepped:Connect(function()
camera = Workspace.CurrentCamera
if not camera then return end
local centerScreen = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
FOVCircle.Position = centerScreen
local radarOriginX = camera.ViewportSize.X - RadarSize - 40
local radarOriginY = 40
RadarCenter = Vector2.new(radarOriginX + (RadarSize / 2), radarOriginY + (RadarSize / 2))
if Settings.RadarEnabled then
RadarBG.Position = Vector2.new(radarOriginX, radarOriginY)
RadarBorder.Position = Vector2.new(radarOriginX, radarOriginY)
RadarLineV.From = Vector2.new(RadarCenter.X, radarOriginY)
RadarLineV.To = Vector2.new(RadarCenter.X, radarOriginY + RadarSize)
RadarLineH.From = Vector2.new(radarOriginX, RadarCenter.Y)
RadarLineH.To = Vector2.new(radarOriginX + RadarSize, RadarCenter.Y)
RadarCenterDot.Position = RadarCenter
end
local myTeam = GetTeam(LocalPlayer)
local myChar = GetChar(LocalPlayer)
local myRoot = myChar and GetRoot(myChar)
for _, plr in ipairs(Players:GetPlayers()) do
if plr == LocalPlayer then continue end
local c = GetCache(plr)
local team = GetTeam(plr)
if not IsPlaying(team) or (IsPlaying(myTeam) and myTeam == team) then
HideAll(c)
continue
end
local char = GetChar(plr)
if not char then HideAll(c); continue end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health = minX and mapPoint.X = minY and mapPoint.Y MAX_DIST then
c.BoxOutline.Visible = false; c.Box.Visible = false; c.HpBG.Visible = false; c.HpBar.Visible = false; c.HeadDot.Visible = false
continue
end
local cf, sz = GetBounds(char)
if not cf then
c.BoxOutline.Visible = false; c.Box.Visible = false; c.HpBG.Visible = false; c.HpBar.Visible = false; c.HeadDot.Visible = false
continue
end
local minX, minY, maxX, maxY = ProjectBox(camera, cf, sz)
if not minX then
c.BoxOutline.Visible = false; c.Box.Visible = false; c.HpBG.Visible = false; c.HpBar.Visible = false; c.HeadDot.Visible = false
continue
end
local w, h = maxX - minX, maxY - minY
if w < 1 or h < 1 then
c.BoxOutline.Visible = false; c.Box.Visible = false; c.HpBG.Visible = false; c.HpBar.Visible = false; c.HeadDot.Visible = false
continue
end
c.BoxOutline.Position = Vector2.new(minX - 1, minY - 1)
c.BoxOutline.Size = Vector2.new(w + 2, h + 2)
c.BoxOutline.Visible = true
c.Box.Color = color
c.Box.Position = Vector2.new(minX, minY)
c.Box.Size = Vector2.new(w, h)
c.Box.Visible = true
local maxHP = math.max(hum.MaxHealth, 1)
local pct = math.clamp(hum.Health / maxHP, 0, 1)
local barH = math.max(1, h)
local filled = barH * pct
local barX = minX - 6
c.HpBG.Position = Vector2.new(barX - 1, minY - 1)
c.HpBG.Size = Vector2.new(4, barH + 2)
c.HpBG.Visible = true
c.HpBar.Position = Vector2.new(barX, maxY - filled)
c.HpBar.Size = Vector2.new(2, filled)
c.HpBar.Color = LOW_HP:Lerp(HIGH_HP, pct)
c.HpBar.Visible = true
local head = char:FindFirstChild("Head")
if Settings.HeadDotEnabled and head then
local headPos, headOnScreen = camera:WorldToViewportPoint(head.Position)
if headOnScreen then
c.HeadDot.Position = Vector2.new(headPos.X, headPos.Y)
c.HeadDot.Color = color
c.HeadDot.Visible = true
else
c.HeadDot.Visible = false
end
else
c.HeadDot.Visible = false
end
end
end)
table.insert(ScriptConnections, espConnection)
-- Wall Check Validation Function
local function IsVisible(targetPart, character)
if not camera or not targetPart then return false end
local origin = camera.CFrame.Position
local destination = targetPart.Position
local direction = destination - origin
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local ignoreList = {LocalPlayer.Character, character}
local charsFolder = Workspace:FindFirstChild("Characters")
if charsFolder then table.insert(ignoreList, charsFolder) end
raycastParams.FilterDescendantsInstances = ignoreList
raycastParams.IgnoreWater = true
local raycastResult = Workspace:Raycast(origin, direction, raycastParams)
return raycastResult == nil
end
-- SPEED OPTIMIZED TRIGGERBOT RUNTIME
local LastShotTime = 0
local triggerConnection
triggerConnection = RunService.RenderStepped:Connect(function()
if not Settings.TriggerbotEnabled then return end
camera = Workspace.CurrentCamera
if not camera then return end
-- Check user designated delay configuration
local currentTime = os.clock()
if currentTime - LastShotTime 0 and char:GetAttribute("Dead") ~= true and root then
local screenPos, onScreen = camera:WorldToViewportPoint(root.Position)
if onScreen then
local screenPos2D = Vector2.new(screenPos.X, screenPos.Y)
local distanceToCenter = (screenPos2D - centerScreen).Magnitude
-- Instant execution if target crosshair distance falls inside boundary
if distanceToCenter <= Settings.FOVRadius then
if IsVisible(root, char) then
targetFound = true
break
end
end
end
end
end
end
end
if targetFound and mouse1click then
LastShotTime = currentTime
mouse1click()
end
end)
table.insert(ScriptConnections, triggerConnection)
-- Handle player exit cache purges
local removeConnection = Players.PlayerRemoving:Connect(DestroyCache)
table.insert(ScriptConnections, removeConnection)
-- Define the script termination strategy inside the _G global space
_G[GLOBAL_TAG] = {
Disconnect = function()
for _, conn in ipairs(ScriptConnections) do
if conn then conn:Disconnect() end
end
pcall(function() FOVCircle:Remove() end)
pcall(function() ScreenGui:Destroy() end)
pcall(function() RadarBG:Remove() end)
pcall(function() RadarBorder:Remove() end)
pcall(function() RadarLineV:Remove() end)
pcall(function() RadarLineH:Remove() end)
pcall(function() RadarCenterDot:Remove() end)
for _, plr in ipairs(Players:GetPlayers()) do
DestroyCache(plr)
end
end
}