
Keyless

if getgenv().BlindShotOP then
pcall(function() getgenv().BlindShotOP.Unload() end)
task.wait(0.3)
end
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local Config = {
espEnabled = true,
espShowName = true,
espShowDistance = true,
espTracers = false,
espBoxes = true,
espLaserESP = true,
aimbotEnabled = false,
aimbotSmooth = 0.2,
winModeEnabled = false,
winModeSafeRadius = 5,
punchAuraEnabled = false,
punchAuraRange = 15,
punchAuraSpeed = 0.1,
autoFarmEnabled = false,
autoFarmDelay = 1.5,
antiRagdollEnabled = true,
speedHackEnabled = false,
speedHackValue = 25,
}
local Tuning = {
BoxRatio = 0.55,
MaxESPDistance = 2000,
LaserESPLength = 500,
SafeCheckRadius = 3,
FlyHeight = 100,
TrophyPosition = Vector3.new(78.7, 66.1, 116.3)
}
local Palette = {
Enemy = Color3.fromRGB(220, 60, 60),
Tracer = Color3.fromRGB(255, 80, 100),
LaserActive = Color3.fromRGB(255, 0, 0),
LaserInactive = Color3.fromRGB(100, 100, 100),
Safe = Color3.fromRGB(0, 255, 0)
}
local IsMobileDevice = UserInputService.TouchEnabled
local State = {
Running = true,
Unloaded = false,
LastPunch = 0,
Farming = false,
PunchEquipped = false,
SafeSpotLocked = nil,
FinalLocked = false,
LastSafeCheck = 0,
MobileAiming = false,
WasFinalBattle = false,
LastWinModeUpdate = 0,
LastESPUpdate = 0,
CachedArena = nil,
CachedArenaTime = 0,
CachedLasers = nil,
CachedLasersTime = 0
}
local Cache = {
Connections = {},
LaserData = {}
}
local UpdateIntervals = {
WinMode = IsMobileDevice and 0.05 or 0.016,
ESP = IsMobileDevice and 0.1 or 0.033,
ArenaCache = 0.5,
LaserCache = IsMobileDevice and 0.033 or 0.016
}
local ScreenGui = nil
local ESP = { cache = {} }
if not Drawing then
warn("Executor does not support Drawing library")
return
end
local testDraw = Drawing.new("Square")
if type(testDraw) == "number" then
warn("Drawing library returns IDs instead of objects")
return
end
if testDraw and testDraw.Remove then
testDraw:Remove()
end
function ESP.Create()
return {
BoxTop = Drawing.new("Line"),
BoxRight = Drawing.new("Line"),
BoxBottom = Drawing.new("Line"),
BoxLeft = Drawing.new("Line"),
Name = Drawing.new("Text"),
Distance = Drawing.new("Text"),
Tracer = Drawing.new("Line"),
Laser = Drawing.new("Line")
}
end
function ESP.Setup(obj)
obj.BoxTop.Thickness = 1
obj.BoxTop.Visible = false
obj.BoxRight.Thickness = 1
obj.BoxRight.Visible = false
obj.BoxBottom.Thickness = 1
obj.BoxBottom.Visible = false
obj.BoxLeft.Thickness = 1
obj.BoxLeft.Visible = false
obj.Name.Size = 14
obj.Name.Font = Drawing.Fonts.Monospace
obj.Name.Center = true
obj.Name.Outline = true
obj.Name.Visible = false
obj.Distance.Size = 12
obj.Distance.Font = Drawing.Fonts.Monospace
obj.Distance.Center = true
obj.Distance.Outline = true
obj.Distance.Visible = false
obj.Tracer.Thickness = 1
obj.Tracer.Visible = false
obj.Laser.Thickness = 2
obj.Laser.Visible = false
end
function ESP.Get(player)
if not ESP.cache[player] then
ESP.cache[player] = ESP.Create()
ESP.Setup(ESP.cache[player])
end
return ESP.cache[player]
end
function ESP.Hide(obj)
if not obj then return end
obj.BoxTop.Visible = false
obj.BoxRight.Visible = false
obj.BoxBottom.Visible = false
obj.BoxLeft.Visible = false
obj.Name.Visible = false
obj.Distance.Visible = false
obj.Tracer.Visible = false
obj.Laser.Visible = false
end
function ESP.Destroy(obj)
if not obj then return end
pcall(function() obj.BoxTop:Remove() end)
pcall(function() obj.BoxRight:Remove() end)
pcall(function() obj.BoxBottom:Remove() end)
pcall(function() obj.BoxLeft:Remove() end)
pcall(function() obj.Name:Remove() end)
pcall(function() obj.Distance:Remove() end)
pcall(function() obj.Tracer:Remove() end)
pcall(function() obj.Laser:Remove() end)
end
function ESP.Remove(player)
if ESP.cache[player] then
ESP.Destroy(ESP.cache[player])
ESP.cache[player] = nil
end
end
function ESP.ClearAll()
for player, obj in pairs(ESP.cache) do
ESP.Destroy(obj)
end
ESP.cache = {}
end
local function GetCharacterRoot(character)
if not character then return nil end
return character:FindFirstChild("HumanoidRootPart")
end
local function GetCharacterHumanoid(character)
if not character then return nil end
return character:FindFirstChild("Humanoid")
end
local function IsPlayerAlive(player)
if player == LocalPlayer then
local char = LocalPlayer.Character
if not char then return false end
local hum = GetCharacterHumanoid(char)
if not hum or hum.Health <= 0 then return false end
return true
end
local aliveFolder = Workspace:FindFirstChild("jogadoresVivos")
if aliveFolder then
local playerValue = aliveFolder:FindFirstChild(player.Name)
if playerValue then return true end
end
local char = player.Character
if not char then return false end
local hum = GetCharacterHumanoid(char)
if not hum or hum.Health <= 0 then return false end
return true
end
function ESP.Render(player)
local obj = ESP.Get(player)
if not Config.espEnabled then
ESP.Hide(obj)
return
end
if player == LocalPlayer then
ESP.Hide(obj)
return
end
if not IsPlayerAlive(player) then
ESP.Hide(obj)
return
end
local character = player.Character
if not character then
ESP.Hide(obj)
return
end
local root = GetCharacterRoot(character)
if not root then
ESP.Hide(obj)
return
end
local rootPos = root.Position
local myChar = LocalPlayer.Character
local myRoot = myChar and GetCharacterRoot(myChar)
local distance = myRoot and (rootPos - myRoot.Position).Magnitude or 0
if distance > Tuning.MaxESPDistance then
ESP.Hide(obj)
return
end
local screenPos, onScreen = Camera:WorldToViewportPoint(rootPos)
if not onScreen or screenPos.Z <= 0 then
ESP.Hide(obj)
return
end
local screenSize = Camera.ViewportSize
local boxHeight = math.clamp(2000 / screenPos.Z, 20, screenSize.Y * 0.8)
local boxWidth = boxHeight * Tuning.BoxRatio
local x = screenPos.X - boxWidth / 2
local y = screenPos.Y - boxHeight / 2
local color = Palette.Enemy
if Config.espBoxes then
obj.BoxTop.From = Vector2.new(x, y)
obj.BoxTop.To = Vector2.new(x + boxWidth, y)
obj.BoxTop.Color = color
obj.BoxTop.Visible = true
obj.BoxRight.From = Vector2.new(x + boxWidth, y)
obj.BoxRight.To = Vector2.new(x + boxWidth, y + boxHeight)
obj.BoxRight.Color = color
obj.BoxRight.Visible = true
obj.BoxBottom.From = Vector2.new(x + boxWidth, y + boxHeight)
obj.BoxBottom.To = Vector2.new(x, y + boxHeight)
obj.BoxBottom.Color = color
obj.BoxBottom.Visible = true
obj.BoxLeft.From = Vector2.new(x, y + boxHeight)
obj.BoxLeft.To = Vector2.new(x, y)
obj.BoxLeft.Color = color
obj.BoxLeft.Visible = true
else
obj.BoxTop.Visible = false
obj.BoxRight.Visible = false
obj.BoxBottom.Visible = false
obj.BoxLeft.Visible = false
end
if Config.espShowName then
obj.Name.Text = player.DisplayName
obj.Name.Position = Vector2.new(screenPos.X, y - 16)
obj.Name.Color = color
obj.Name.Visible = true
else
obj.Name.Visible = false
end
if Config.espShowDistance then
obj.Distance.Text = string.format("[%dm]", math.floor(distance))
obj.Distance.Position = Vector2.new(screenPos.X, y + boxHeight + 2)
obj.Distance.Color = Color3.fromRGB(200, 200, 200)
obj.Distance.Visible = true
else
obj.Distance.Visible = false
end
if Config.espTracers then
local tracerStart = Vector2.new(screenSize.X / 2, screenSize.Y)
obj.Tracer.From = tracerStart
obj.Tracer.To = Vector2.new(screenPos.X, y + boxHeight)
obj.Tracer.Color = Palette.Tracer
obj.Tracer.Visible = true
else
obj.Tracer.Visible = false
end
if Config.espLaserESP then
local skinModel = character:FindFirstChild("Skin_1")
local laserVisible = false
if skinModel then
local ponto = skinModel:FindFirstChild("ponto")
local targetPart = skinModel:FindFirstChild("TargetPart")
if ponto and targetPart then
local pontoAttach = ponto:FindFirstChild("Attachment")
local targetAttach = targetPart:FindFirstChild("Attachment")
local beam = ponto:FindFirstChild("Beam")
if pontoAttach and targetAttach then
local laserStart = pontoAttach.WorldPosition
local laserEnd = targetAttach.WorldPosition
local startScreen = Camera:WorldToViewportPoint(laserStart)
local endScreen = Camera:WorldToViewportPoint(laserEnd)
if startScreen.Z > 0 then
obj.Laser.From = Vector2.new(startScreen.X, startScreen.Y)
obj.Laser.To = Vector2.new(endScreen.X, endScreen.Y)
local isActive = beam and beam.Enabled
obj.Laser.Color = isActive and Palette.LaserActive or Palette.LaserInactive
obj.Laser.Thickness = isActive and 3 or 1
obj.Laser.Visible = true
laserVisible = true
Cache.LaserData[player] = {
startPos = laserStart,
endPos = laserEnd,
direction = (laserEnd - laserStart).Unit,
active = isActive
}
end
end
end
end
if not laserVisible then
obj.Laser.Visible = false
Cache.LaserData[player] = nil
end
else
obj.Laser.Visible = false
Cache.LaserData[player] = nil
end
end
local function GetTargetPart(character, partName)
if not character then return nil end
if partName == "Hitbox" then
local hitbox = character:FindFirstChild("hitbox")
if hitbox then return hitbox end
end
local part = character:FindFirstChild(partName)
if part then return part end
return GetCharacterRoot(character)
end
local Aimbot = {}
function Aimbot.GetClosestPlayer()
local closestPlayer = nil
local closestDist = math.huge
local screenCenter = Camera.ViewportSize / 2
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local character = player.Character
if not character then continue end
local head = GetTargetPart(character, "Head")
if not head then continue end
local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position)
if not onScreen or screenPos.Z <= 0 then continue end
local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(screenCenter.X, screenCenter.Y)).Magnitude
if dist < closestDist then
closestDist = dist
closestPlayer = player
end
end
return closestPlayer
end
function Aimbot.Update()
if not Config.aimbotEnabled and not Config.winModeEnabled then return end
local isMobileAiming = State.MobileAiming == true
local isRMBPressed = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
if not Config.winModeEnabled and not isRMBPressed and not isMobileAiming then return end
local target = Aimbot.GetClosestPlayer()
if not target then return end
local character = target.Character
if not character then return end
local head = GetTargetPart(character, "Head")
if not head then return end
local targetPos = head.Position
local camPos = Camera.CFrame.Position
local targetCF = CFrame.lookAt(camPos, targetPos)
Camera.CFrame = Camera.CFrame:Lerp(targetCF, Config.aimbotSmooth)
end
local WinMode = {}
local PunchAura = {}
local VirtualInputManager = game:GetService("VirtualInputManager")
local function SimulateKeyPress(keyCode)
pcall(function()
VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
task.wait(0.05)
VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end)
pcall(function()
if keypress then
keypress(keyCode.Value)
task.wait(0.05)
keyrelease(keyCode.Value)
end
end)
end
local function SimulateClick()
pcall(function()
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 1)
task.wait(0.05)
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1)
end)
pcall(function()
if mouse1click then
mouse1click()
end
end)
end
function WinMode.EquipPunch()
SimulateKeyPress(Enum.KeyCode.One)
local backpack = LocalPlayer:FindFirstChild("Backpack")
if backpack then
for _, tool in pairs(backpack:GetChildren()) do
if tool:IsA("Tool") then
local char = LocalPlayer.Character
if char then
pcall(function()
tool.Parent = char
end)
end
break
end
end
end
end
function WinMode.ActivatePunch()
local char = LocalPlayer.Character
if not char then return end
for _, item in pairs(char:GetChildren()) do
if item:IsA("Tool") then
pcall(function()
item:Activate()
end)
break
end
end
SimulateClick()
end
function WinMode.GetGameState()
local state = {
finalBattle = false,
matchRunning = false,
timerText = "",
alivePlayers = 0
}
local finalBattle = Workspace:FindFirstChild("finalBattle")
if finalBattle then state.finalBattle = finalBattle.Value end
local partidaRolando = Workspace:FindFirstChild("partidaRolando")
if partidaRolando then state.matchRunning = partidaRolando.Value end
local jogadoresVivos = Workspace:FindFirstChild("jogadoresVivos")
if jogadoresVivos then state.alivePlayers = #jogadoresVivos:GetChildren() end
pcall(function()
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
local timerGui = playerGui:FindFirstChild("TimerGui")
if timerGui then
local timerLabel = timerGui:FindFirstChild("TimerLabel", true)
if timerLabel then
state.timerText = timerLabel.Text
end
end
end
end)
return state
end
local HITBOX_HALF_WIDTH = 2.5
local HITBOX_HALF_DEPTH = 1.5
local HITBOX_BUFFER = 0.5
local MIN_SAFE_DISTANCE = HITBOX_HALF_WIDTH + HITBOX_BUFFER
local function GetArenaInfo()
local now = tick()
if State.CachedArena and now - State.CachedArenaTime < UpdateIntervals.ArenaCache then
return State.CachedArena
end
local arenaFloor = Workspace:FindFirstChild("chao")
local result
if arenaFloor then
local pos = arenaFloor.Position
local size = arenaFloor.Size
local radius = math.min(size.X, size.Z) / 2 - 1.5
result = {
centerX = pos.X,
centerZ = pos.Z,
radius = math.max(radius, 1),
floorY = pos.Y + size.Y / 2
}
else
result = {
centerX = 0,
centerZ = -11,
radius = 3,
floorY = -5
}
end
State.CachedArena = result
State.CachedArenaTime = now
return result
end
local function ClampToArena(pos)
local arena = GetArenaInfo()
local dx = pos.X - arena.centerX
local dz = pos.Z - arena.centerZ
local dist = math.sqrt(dx * dx + dz * dz)
if dist > arena.radius then
local scale = (arena.radius - 0.5) / dist
return Vector3.new(
arena.centerX + dx * scale,
pos.Y,
arena.centerZ + dz * scale
)
end
return pos
end
local function IsInsideArena(pos)
local arena = GetArenaInfo()
local dx = pos.X - arena.centerX
local dz = pos.Z - arena.centerZ
local dist = math.sqrt(dx * dx + dz * dz)
return dist <= arena.radius
end
local function PointToRayDistance(point, rayStart, rayDir)
local toPoint = point - rayStart
local projection = toPoint:Dot(rayDir)
local closestPoint = rayStart + rayDir * math.max(0, projection)
return (point - closestPoint).Magnitude
end
local function GetAllLaserData()
local now = tick()
if State.CachedLasers and now - State.CachedLasersTime < UpdateIntervals.LaserCache then
return State.CachedLasers
end
local lasers = {}
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
local character = player.Character
if not character then continue end
local skinModel = character:FindFirstChild("Skin_1")
if not skinModel then continue end
local ponto = skinModel:FindFirstChild("ponto")
local targetPart = skinModel:FindFirstChild("TargetPart")
if ponto and targetPart then
local pontoAttach = ponto:FindFirstChild("Attachment")
local targetAttach = targetPart:FindFirstChild("Attachment")
if pontoAttach and targetAttach then
local laserStart = pontoAttach.WorldPosition
local laserEnd = targetAttach.WorldPosition
local direction = (laserEnd - laserStart).Unit
lasers[player] = {
startPos = laserStart,
endPos = laserEnd,
direction = direction
}
end
end
end
State.CachedLasers = lasers
State.CachedLasersTime = now
return lasers
end
local function IsLaserHittingHitbox(hitboxCenter, laserStart, laserDir)
local toHitbox = hitboxCenter - laserStart
local projection = toHitbox:Dot(laserDir)
if projection < 0 then return false, 999 end
local closestPointOnRay = laserStart + laserDir * projection
local dx = math.abs(closestPointOnRay.X - hitboxCenter.X)
local dz = math.abs(closestPointOnRay.Z - hitboxCenter.Z)
local isHit = dx < HITBOX_HALF_WIDTH and dz < HITBOX_HALF_DEPTH
local clearance = math.min(HITBOX_HALF_WIDTH - dx, HITBOX_HALF_DEPTH - dz)
return isHit, -clearance
end
function WinMode.IsPositionSafe(pos, radius)
local lasers = GetAllLaserData()
for player, laserData in pairs(lasers) do
if laserData and laserData.direction then
local isHit, clearance = IsLaserHittingHitbox(pos, laserData.startPos, laserData.direction)
if isHit then
return false
end
local dist = PointToRayDistance(pos, laserData.startPos, laserData.direction)
if dist < MIN_SAFE_DISTANCE then
return false
end
end
end
return true
end
function WinMode.GetMinLaserDistance(pos)
local lasers = GetAllLaserData()
local minDist = 999
for player, laserData in pairs(lasers) do
if laserData and laserData.direction and laserData.startPos then
local isHit, clearance = IsLaserHittingHitbox(pos, laserData.startPos, laserData.direction)
if isHit then
return 0
end
local dist = PointToRayDistance(pos, laserData.startPos, laserData.direction)
if dist < minDist then
minDist = dist
end
end
end
return minDist
end
function WinMode.FindSafePosition()
local arena = GetArenaInfo()
local char = LocalPlayer.Character
local arenaY = char and char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position.Y or -2
local arenaCenter = Vector3.new(arena.centerX, arenaY, arena.centerZ)
local arenaRadius = arena.radius
local bestPos = arenaCenter
local bestSafety = WinMode.GetMinLaserDistance(arenaCenter)
for angle = 0, 360, 10 do
for dist = 0, arenaRadius, 1 do
local rad = math.rad(angle)
local testPos = arenaCenter + Vector3.new(math.cos(rad) * dist, 0, math.sin(rad) * dist)
local minLaserDist = WinMode.GetMinLaserDistance(testPos)
if minLaserDist > bestSafety then
bestSafety = minLaserDist
bestPos = testPos
end
end
end
return bestPos
end
function WinMode.GetClosestEnemyPosition()
local char = LocalPlayer.Character
if not char then return nil end
local root = GetCharacterRoot(char)
if not root then return nil end
local closestPos = nil
local closestDist = math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
local hitbox = enemyChar:FindFirstChild("hitbox")
local head = enemyChar:FindFirstChild("Head")
local targetPos
if hitbox then
targetPos = hitbox.Position
elseif head then
targetPos = head.Position
else
targetPos = enemyRoot.Position
end
local dist = (enemyRoot.Position - root.Position).Magnitude
if dist < closestDist then
closestDist = dist
closestPos = targetPos
end
end
return closestPos
end
function WinMode.GetClosestEnemy()
local char = LocalPlayer.Character
if not char then return nil end
local root = GetCharacterRoot(char)
if not root then return nil end
local closestPlayer = nil
local closestDist = math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
local dist = (enemyRoot.Position - root.Position).Magnitude
if dist < closestDist then
closestDist = dist
closestPlayer = player
end
end
return closestPlayer
end
function WinMode.FindPositionBehindPlayer()
local char = LocalPlayer.Character
if not char then return nil end
local root = GetCharacterRoot(char)
if not root then return nil end
local arena = GetArenaInfo()
local arenaY = root.Position.Y
local lasers = GetAllLaserData()
local laserCount = 0
for _ in pairs(lasers) do laserCount = laserCount + 1 end
if laserCount == 0 then return nil end
local bestPos = nil
local bestSafety = 0
local checked = 0
local maxChecks = IsMobileDevice and 3 or 10
for _, player in ipairs(Players:GetPlayers()) do
if checked >= maxChecks then break end
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
checked = checked + 1
local enemyPos = enemyRoot.Position
for laserPlayer, laserData in pairs(lasers) do
if laserPlayer == player then continue end
if not laserData or not laserData.direction then continue end
local laserDir = Vector3.new(laserData.direction.X, 0, laserData.direction.Z).Unit
local behindOffset = -laserDir * 1.5
local behindPos = Vector3.new(
enemyPos.X + behindOffset.X,
arenaY,
enemyPos.Z + behindOffset.Z
)
behindPos = ClampToArena(behindPos)
if not IsInsideArena(behindPos) then continue end
local isSafe = true
local minClearance = 999
for checkPlayer, checkLaser in pairs(lasers) do
if not checkLaser or not checkLaser.direction then continue end
local isHit = IsLaserHittingHitbox(behindPos, checkLaser.startPos, checkLaser.direction)
if isHit then
isSafe = false
break
end
local dist = PointToRayDistance(behindPos, checkLaser.startPos, checkLaser.direction)
if dist < minClearance then
minClearance = dist
end
end
if isSafe and minClearance > 1 and minClearance > bestSafety then
bestSafety = minClearance
bestPos = behindPos
end
end
end
return bestPos
end
function WinMode.AimAtClosestEnemy()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local closestEnemy = nil
local closestDist = math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
local dist = (enemyRoot.Position - root.Position).Magnitude
if dist < closestDist then
closestDist = dist
closestEnemy = enemyRoot
end
end
if closestEnemy then
local lookAt = CFrame.new(root.Position, Vector3.new(closestEnemy.Position.X, root.Position.Y, closestEnemy.Position.Z))
root.CFrame = lookAt
end
end
function WinMode.FlyAndFling()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local humanoid = GetCharacterHumanoid(char)
root.CFrame = root.CFrame + Vector3.new(0, Tuning.FlyHeight, 0)
if humanoid then
humanoid.PlatformStand = true
end
local bv = root:FindFirstChild("WinModeBodyVelocity")
if not bv then
bv = Instance.new("BodyVelocity")
bv.Name = "WinModeBodyVelocity"
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Velocity = Vector3.new(0, 0, 0)
bv.Parent = root
end
State.Flying = true
end
function WinMode.StopFlying()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local humanoid = GetCharacterHumanoid(char)
local bv = root:FindFirstChild("WinModeBodyVelocity")
if bv then bv:Destroy() end
if humanoid then
humanoid.PlatformStand = false
end
State.Flying = false
end
function WinMode.FlingEnemy(enemy)
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local myHitbox = char:FindFirstChild("hitbox")
local enemyChar = enemy.Character
if not enemyChar then return end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then return end
local enemyHitbox = enemyChar:FindFirstChild("hitbox")
local lookAt = CFrame.new(root.Position, Vector3.new(enemyRoot.Position.X, root.Position.Y, enemyRoot.Position.Z))
root.CFrame = lookAt
root.CFrame = CFrame.new(enemyRoot.Position + Vector3.new(0, 0.5, 0)) * CFrame.Angles(0, lookAt:ToEulerAnglesYXZ())
WinMode.ActivatePunch()
if myHitbox and enemyHitbox and firetouchinterest then
for i = 1, 5 do
pcall(function()
firetouchinterest(myHitbox, enemyHitbox, 0)
firetouchinterest(myHitbox, enemyHitbox, 1)
end)
end
end
for _, part in pairs(enemyChar:GetChildren()) do
if part:IsA("BasePart") and myHitbox then
pcall(function()
firetouchinterest(myHitbox, part, 0)
firetouchinterest(myHitbox, part, 1)
end)
end
end
end
function WinMode.ResetPosition()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local bv = root:FindFirstChild("WinModeAntifall")
if bv then bv:Destroy() end
local arena = GetArenaInfo()
root.CFrame = CFrame.new(arena.centerX, root.Position.Y, arena.centerZ)
end
function WinMode.PreventFall()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local bv = root:FindFirstChild("WinModeAntifall")
if not bv then
bv = Instance.new("BodyVelocity")
bv.Name = "WinModeAntifall"
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Velocity = Vector3.new(0, 0, 0)
bv.Parent = root
end
local humanoid = GetCharacterHumanoid(char)
if humanoid then
humanoid.PlatformStand = false
end
end
function WinMode.AllowFall()
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local bv = root:FindFirstChild("WinModeAntifall")
if bv then bv:Destroy() end
end
function WinMode.Update()
if not Config.winModeEnabled then
State.PunchEquipped = false
State.SafeSpotLocked = nil
State.FinalLocked = false
WinMode.AllowFall()
return
end
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local gameState = WinMode.GetGameState()
if not gameState.matchRunning and not gameState.finalBattle then
if State.WasFinalBattle then
State.WasFinalBattle = false
WinMode.AllowFall()
end
State.SafeSpotLocked = nil
State.FinalLocked = false
State.PunchEquipped = false
return
end
if gameState.finalBattle then
State.WasFinalBattle = true
end
local arena = GetArenaInfo()
local arenaY = root.Position.Y
local arenaCenter = Vector3.new(arena.centerX, arenaY, arena.centerZ)
local arenaRadius = arena.radius
local timerLower = gameState.timerText:lower()
local isShootout = timerLower:find("shoot")
local isCritical = gameState.timerText:find(": 0") or
gameState.timerText:find(":0") or
gameState.timerText:find(": 1") or
gameState.timerText:find(":1") or
gameState.timerText:find(": 2") or
gameState.timerText:find(":2") or
gameState.timerText:find(": 3") or
gameState.timerText:find(":3")
if isShootout then
State.FinalLocked = true
return
end
State.FinalLocked = false
local now = tick()
if now - State.LastWinModeUpdate < UpdateIntervals.WinMode then
if State.SafeSpotLocked then
local safePos = ClampToArena(Vector3.new(State.SafeSpotLocked.X, arenaY, State.SafeSpotLocked.Z))
local closestEnemy = WinMode.GetClosestEnemyPosition()
if closestEnemy then
root.CFrame = CFrame.new(safePos, closestEnemy)
else
root.CFrame = CFrame.new(safePos)
end
end
return
end
State.LastWinModeUpdate = now
local lasers = GetAllLaserData()
local bestPos = nil
local bestSafety = 0
local stepAngle = IsMobileDevice and (isCritical and 8 or 20) or (isCritical and 3 or 10)
local stepDist = IsMobileDevice and (isCritical and 0.8 or 2) or (isCritical and 0.3 or 1)
for angle = 0, 359, stepAngle do
for dist = 0, arenaRadius, stepDist do
local rad = math.rad(angle)
local spot = Vector3.new(
arena.centerX + math.cos(rad) * dist,
arenaY,
arena.centerZ + math.sin(rad) * dist
)
local isSafe = true
local minClearance = 999
for player, laserData in pairs(lasers) do
if laserData and laserData.direction then
local isHit = IsLaserHittingHitbox(spot, laserData.startPos, laserData.direction)
if isHit then
isSafe = false
minClearance = 0
break
end
local dist2 = PointToRayDistance(spot, laserData.startPos, laserData.direction)
if dist2 < minClearance then
minClearance = dist2
end
end
end
if isSafe and minClearance > MIN_SAFE_DISTANCE and minClearance > bestSafety then
bestSafety = minClearance
bestPos = spot
end
end
end
if bestPos and bestSafety > MIN_SAFE_DISTANCE then
State.SafeSpotLocked = ClampToArena(bestPos)
else
local behindPos = WinMode.FindPositionBehindPlayer()
if behindPos and IsInsideArena(behindPos) then
State.SafeSpotLocked = ClampToArena(behindPos)
elseif bestPos then
State.SafeSpotLocked = ClampToArena(bestPos)
elseif not State.SafeSpotLocked then
State.SafeSpotLocked = arenaCenter
end
end
if not State.SafeSpotLocked then return end
State.SafeSpotLocked = ClampToArena(State.SafeSpotLocked)
local safePos = ClampToArena(Vector3.new(State.SafeSpotLocked.X, arenaY, State.SafeSpotLocked.Z))
local closestEnemy = WinMode.GetClosestEnemyPosition()
local targetCFrame
if closestEnemy then
targetCFrame = CFrame.new(safePos, closestEnemy)
else
targetCFrame = CFrame.new(safePos)
end
root.CFrame = targetCFrame
if gameState.finalBattle then
WinMode.PreventFall()
if State.SafeSpotLocked then
local clamped = ClampToArena(State.SafeSpotLocked)
local safePos = Vector3.new(clamped.X, root.Position.Y, clamped.Z)
local closestEnemy = WinMode.GetClosestEnemyPosition()
if closestEnemy then
root.CFrame = CFrame.new(safePos, closestEnemy)
else
root.CFrame = CFrame.new(safePos)
end
end
if not State.PunchEquipped then
WinMode.EquipPunch()
State.PunchEquipped = true
end
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
local dist = (root.Position - enemyRoot.Position).Magnitude
if dist < Config.punchAuraRange then
local myHitbox = char:FindFirstChild("hitbox")
local targetHitbox = enemyChar:FindFirstChild("hitbox")
if myHitbox and targetHitbox and firetouchinterest then
pcall(function() firetouchinterest(myHitbox, targetHitbox, 0) end)
pcall(function() firetouchinterest(myHitbox, targetHitbox, 1) end)
end
pcall(function()
if mouse1click then
mouse1click()
elseif mouse1press and mouse1release then
mouse1press()
mouse1release()
end
end)
end
end
else
WinMode.AllowFall()
end
end
function PunchAura.GetNearbyEnemy()
local char = LocalPlayer.Character
if not char then return nil end
local root = GetCharacterRoot(char)
if not root then return nil end
local myPos = root.Position
local closestEnemy = nil
local closestDist = Config.punchAuraRange
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if not IsPlayerAlive(player) then continue end
local enemyChar = player.Character
if not enemyChar then continue end
local enemyRoot = GetCharacterRoot(enemyChar)
if not enemyRoot then continue end
local dist = (enemyRoot.Position - myPos).Magnitude
if dist < closestDist then
closestDist = dist
closestEnemy = player
end
end
return closestEnemy
end
function PunchAura.PerformPunch(targetPlayer)
local char = LocalPlayer.Character
if not char then return end
local root = GetCharacterRoot(char)
if not root then return end
local targetChar = targetPlayer.Character
if not targetChar then return end
local targetRoot = GetCharacterRoot(targetChar)
if not targetRoot then return end
local myHitbox = char:FindFirstChild("hitbox")
local targetHitbox = targetChar:FindFirstChild("hitbox")
local lookAtTarget = CFrame.new(root.Position, Vector3.new(targetRoot.Position.X, root.Position.Y, targetRoot.Position.Z))
root.CFrame = lookAtTarget
if myHitbox and targetHitbox and firetouchinterest then
pcall(function() firetouchinterest(myHitbox, targetHitbox, 0) end)
pcall(function() firetouchinterest(myHitbox, targetHitbox, 1) end)
for _, part in pairs(targetChar:GetChildren()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
pcall(function()
firetouchinterest(myHitbox, part, 0)
firetouchinterest(myHitbox, part, 1)
end)
end
end
end
pcall(function()
if mouse1click then
mouse1click()
elseif mouse1press and mouse1release then
mouse1press()
mouse1release()
end
end)
end
function PunchAura.Update()
if not Config.punchAuraEnabled then return end
local now = tick()
if now - State.LastPunch < Config.punchAuraSpeed then return end
local nearbyEnemy = PunchAura.GetNearbyEnemy()
if not nearbyEnemy then return end
State.LastPunch = now
PunchAura.PerformPunch(nearbyEnemy)
end
local function AntiRagdoll()
if not Config.antiRagdollEnabled then return end
pcall(function()
local char = LocalPlayer.Character
if char then
local ragdollScript = char:FindFirstChild("RagdollSCript")
if ragdollScript then ragdollScript:Destroy() end
end
end)
end
local function SpeedHack()
if not Config.speedHackEnabled then return end
pcall(function()
local char = LocalPlayer.Character
if char then
local hum = GetCharacterHumanoid(char)
if hum then hum.WalkSpeed = Config.speedHackValue end
end
end)
end
local function TeleportTo(target)
local char = LocalPlayer.Character
if not char then return false end
local root = GetCharacterRoot(char)
if not root then return false end
local targetPart = nil
if typeof(target) == "Instance" then
if target:IsA("BasePart") then
targetPart = target
elseif target:IsA("Model") then
targetPart = target.PrimaryPart or target:FindFirstChildWhichIsA("BasePart")
end
end
if not targetPart then return false end
root.CFrame = targetPart.CFrame + Vector3.new(0, 3, 0)
return true
end
local function KillCharacter()
local char = LocalPlayer.Character
if not char then return end
local hum = GetCharacterHumanoid(char)
local root = GetCharacterRoot(char)
if root then
root.CFrame = CFrame.new(0, -500, 0)
end
if hum then
pcall(function() hum.Health = 0 end)
end
end
local function WaitForRespawn()
local startTime = tick()
local timeout = 10
while tick() - startTime < timeout do
local char = LocalPlayer.Character
if char then
local hum = GetCharacterHumanoid(char)
local root = GetCharacterRoot(char)
if hum and hum.Health > 0 and root and root.Position.Y > -100 then
task.wait(0.5)
return true
end
end
task.wait(0.1)
end
return false
end
local function GetGameStateForFarm()
local state = {
matchRunning = false,
finalBattle = false
}
local partidaRolando = Workspace:FindFirstChild("partidaRolando")
if partidaRolando then state.matchRunning = partidaRolando.Value end
local finalBattle = Workspace:FindFirstChild("finalBattle")
if finalBattle then state.finalBattle = finalBattle.Value end
return state
end
local function WaitForMatchEnd()
local timeout = 300
local startTime = tick()
while tick() - startTime < timeout do
if not Config.autoFarmEnabled then return false end
local gameState = GetGameStateForFarm()
if not gameState.matchRunning then
return true
end
task.wait(1)
end
return false
end
local function AutoFarmLoop()
local trophyPos = Tuning.TrophyPosition
while Config.autoFarmEnabled and State.Running do
local char = LocalPlayer.Character
if not char then
task.wait(0.5)
continue
end
local root = GetCharacterRoot(char)
if not root then
task.wait(0.5)
continue
end
local trophy = Workspace:FindFirstChild("Trophy")
if not trophy then
task.wait(1)
continue
end
root.CFrame = CFrame.new(trophyPos)
if firetouchinterest then
pcall(function()
firetouchinterest(root, trophy, 0)
firetouchinterest(root, trophy, 1)
end)
end
task.wait(Config.autoFarmDelay)
end
State.Farming = false
end
local function StartAutoFarm()
if State.Farming then return end
State.Farming = true
Threads["AutoFarm"] = task.spawn(AutoFarmLoop)
end
local function StopAutoFarm()
Config.autoFarmEnabled = false
if Threads["AutoFarm"] then
pcall(function() task.cancel(Threads["AutoFarm"]) end)
Threads["AutoFarm"] = nil
end
State.Farming = false
end
local function SafeCancel(name)
if Threads[name] then
pcall(function() task.cancel(Threads[name]) end)
Threads[name] = nil
end
end
local function DisconnectAll()
for name, conn in pairs(Cache.Connections) do
pcall(function() conn:Disconnect() end)
Cache.Connections[name] = nil
end
end
local function Unload()
State.Running = false
State.Unloaded = true
Config.autoFarmEnabled = false
Config.winModeEnabled = false
pcall(function() WinMode.StopFlying() end)
task.wait(0.1)
DisconnectAll()
for name in pairs(Threads) do
SafeCancel(name)
end
ESP.ClearAll()
Cache.LaserData = {}
if ScreenGui then
pcall(function() ScreenGui:Destroy() end)
ScreenGui = nil
end
getgenv().BlindShotOP = nil
end
local function CreateGUI()
local isMobile = UserInputService.TouchEnabled
ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "BlindShotGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset = true
pcall(function()
if syn then
syn.protect_gui(ScreenGui)
elseif gethui then
ScreenGui.Parent = gethui()
return
end
end)
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local Accent = Color3.fromRGB(220, 60, 60)
local GlassBg = Color3.fromRGB(40, 44, 52)
local GlassCard = Color3.fromRGB(55, 60, 70)
local TextPrimary = Color3.fromRGB(255, 255, 255)
local TextSecondary = Color3.fromRGB(140, 145, 155)
local MainContainer = Instance.new("Frame")
MainContainer.Name = "MainContainer"
MainContainer.AnchorPoint = Vector2.new(0.5, 0.5)
MainContainer.Position = UDim2.new(0.5, 0, 0.5, 0)
MainContainer.Size = isMobile and UDim2.new(0, 340, 0, 380) or UDim2.new(0, 520, 0, 360)
MainContainer.BackgroundColor3 = GlassBg
MainContainer.BackgroundTransparency = 0.05
MainContainer.BorderSizePixel = 0
MainContainer.ClipsDescendants = true
MainContainer.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 16)
MainCorner.Parent = MainContainer
local TopBar = Instance.new("Frame")
TopBar.Size = UDim2.new(1, 0, 0, 44)
TopBar.BackgroundColor3 = Color3.fromRGB(35, 38, 46)
TopBar.BackgroundTransparency = 0.3
TopBar.BorderSizePixel = 0
TopBar.Parent = MainContainer
local TopCorner = Instance.new("UICorner")
TopCorner.CornerRadius = UDim.new(0, 16)
TopCorner.Parent = TopBar
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(0, 120, 0, 30)
TitleLabel.Position = UDim2.new(0, 12, 0.5, -15)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "BLIND SHOT"
TitleLabel.TextSize = 16
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextColor3 = Accent
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TopBar
local PowerBtn = Instance.new("ImageButton")
PowerBtn.Size = UDim2.new(0, 28, 0, 28)
PowerBtn.Position = UDim2.new(1, -42, 0.5, -14)
PowerBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
PowerBtn.BackgroundTransparency = 0.6
PowerBtn.BorderSizePixel = 0
PowerBtn.Image = "rbxassetid://97421363782839"
PowerBtn.ImageColor3 = TextPrimary
PowerBtn.Parent = TopBar
local PowerCorner = Instance.new("UICorner")
PowerCorner.CornerRadius = UDim.new(0, 8)
PowerCorner.Parent = PowerBtn
PowerBtn.MouseButton1Click:Connect(Unload)
local ContentFrame = Instance.new("ScrollingFrame")
ContentFrame.Size = UDim2.new(1, -16, 1, -52)
ContentFrame.Position = UDim2.new(0, 8, 0, 48)
ContentFrame.BackgroundTransparency = 1
ContentFrame.ScrollBarThickness = isMobile and 6 or 4
ContentFrame.ScrollBarImageColor3 = Accent
ContentFrame.CanvasSize = UDim2.new(0, 0, 0, isMobile and 600 or 520)
ContentFrame.Parent = MainContainer
local ContentLayout = Instance.new("UIGridLayout")
ContentLayout.CellSize = isMobile and UDim2.new(0.5, -4, 0, 48) or UDim2.new(0.5, -4, 0, 44)
ContentLayout.CellPadding = UDim2.new(0, 6, 0, 6)
ContentLayout.SortOrder = Enum.SortOrder.LayoutOrder
ContentLayout.Parent = ContentFrame
local function CreateToggle(label, default, callback, order)
local Frame = Instance.new("Frame")
Frame.BackgroundColor3 = GlassCard
Frame.BackgroundTransparency = 0.4
Frame.BorderSizePixel = 0
Frame.LayoutOrder = order or 0
Frame.Parent = ContentFrame
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 12)
Corner.Parent = Frame
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1, -60, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.BackgroundTransparency = 1
Label.Text = label
Label.TextSize = isMobile and 9 or 11
Label.Font = Enum.Font.GothamMedium
Label.TextColor3 = TextPrimary
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.TextTruncate = Enum.TextTruncate.AtEnd
Label.Parent = Frame
local toggleSize = isMobile and 32 or 40
local toggleHeight = isMobile and 18 or 22
local ToggleBg = Instance.new("Frame")
ToggleBg.Size = UDim2.new(0, toggleSize, 0, toggleHeight)
ToggleBg.Position = UDim2.new(1, -toggleSize - 8, 0.5, -toggleHeight/2)
ToggleBg.BackgroundColor3 = default and Accent or Color3.fromRGB(60, 65, 75)
ToggleBg.BorderSizePixel = 0
ToggleBg.Parent = Frame
local BgCorner = Instance.new("UICorner")
BgCorner.CornerRadius = UDim.new(1, 0)
BgCorner.Parent = ToggleBg
local circleSize = isMobile and 12 or 16
local Circle = Instance.new("Frame")
Circle.Size = UDim2.new(0, circleSize, 0, circleSize)
Circle.Position = default and UDim2.new(1, -circleSize - 3, 0.5, -circleSize/2) or UDim2.new(0, 3, 0.5, -circleSize/2)
Circle.BackgroundColor3 = TextPrimary
Circle.BorderSizePixel = 0
Circle.Parent = ToggleBg
local CircleCorner = Instance.new("UICorner")
CircleCorner.CornerRadius = UDim.new(1, 0)
CircleCorner.Parent = Circle
local enabled = default
local Btn = Instance.new("TextButton")
Btn.Size = UDim2.new(1, 0, 1, 0)
Btn.BackgroundTransparency = 1
Btn.Text = ""
Btn.Parent = Frame
Btn.MouseButton1Click:Connect(function()
enabled = not enabled
TweenService:Create(ToggleBg, TweenInfo.new(0.2), {
BackgroundColor3 = enabled and Accent or Color3.fromRGB(60, 65, 75)
}):Play()
TweenService:Create(Circle, TweenInfo.new(0.2, Enum.EasingStyle.Back), {
Position = enabled and UDim2.new(1, -circleSize - 3, 0.5, -circleSize/2) or UDim2.new(0, 3, 0.5, -circleSize/2)
}):Play()
callback(enabled)
end)
return Frame
end
local function CreateSlider(label, min, max, default, callback, order)
min = math.min(min, max)
default = math.clamp(default, min, max)
local Frame = Instance.new("Frame")
Frame.BackgroundColor3 = GlassCard
Frame.BackgroundTransparency = 0.4
Frame.BorderSizePixel = 0
Frame.LayoutOrder = order or 0
Frame.Parent = ContentFrame
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 12)
Corner.Parent = Frame
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.6, 0, 0, 18)
Label.Position = UDim2.new(0, 12, 0, 4)
Label.BackgroundTransparency = 1
Label.Text = label
Label.TextSize = 10
Label.Font = Enum.Font.GothamMedium
Label.TextColor3 = TextPrimary
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Frame
local Value = Instance.new("TextLabel")
Value.Size = UDim2.new(0.3, 0, 0, 18)
Value.Position = UDim2.new(0.7, -12, 0, 4)
Value.BackgroundTransparency = 1
Value.Text = tostring(default)
Value.TextSize = 10
Value.Font = Enum.Font.GothamBold
Value.TextColor3 = Accent
Value.TextXAlignment = Enum.TextXAlignment.Right
Value.Parent = Frame
local sliderHeight = isMobile and 10 or 6
local sliderY = isMobile and 32 or 28
local SliderBg = Instance.new("Frame")
SliderBg.Size = UDim2.new(1, -24, 0, sliderHeight)
SliderBg.Position = UDim2.new(0, 12, 0, sliderY)
SliderBg.BackgroundColor3 = Color3.fromRGB(50, 55, 65)
SliderBg.BorderSizePixel = 0
SliderBg.Parent = Frame
local BgCorner = Instance.new("UICorner")
BgCorner.CornerRadius = UDim.new(1, 0)
BgCorner.Parent = SliderBg
local Fill = Instance.new("Frame")
Fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
Fill.BackgroundColor3 = Accent
Fill.BorderSizePixel = 0
Fill.Parent = SliderBg
local FillCorner = Instance.new("UICorner")
FillCorner.CornerRadius = UDim.new(1, 0)
FillCorner.Parent = Fill
local currentValue = default
local dragging = false
local hitAreaHeight = isMobile and 36 or 20
local SliderBtn = Instance.new("TextButton")
SliderBtn.Size = UDim2.new(1, 0, 0, hitAreaHeight)
SliderBtn.Position = UDim2.new(0, 0, 0, isMobile and 18 or 20)
SliderBtn.BackgroundTransparency = 1
SliderBtn.Text = ""
SliderBtn.Parent = Frame
local function UpdateSlider(inputPos)
local pct = math.clamp((inputPos - SliderBg.AbsolutePosition.X) / SliderBg.AbsoluteSize.X, 0, 1)
currentValue = math.floor((min + (max - min) * pct) * 100) / 100
Fill.Size = UDim2.new(pct, 0, 1, 0)
Value.Text = tostring(currentValue)
callback(currentValue)
end
SliderBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
UpdateSlider(input.Position.X)
end
end)
SliderBtn.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
Cache.Connections["Slider_" .. label] = UserInputService.InputChanged:Connect(function(input)
if dragging and State.Running and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
UpdateSlider(input.Position.X)
end
end)
return Frame
end
CreateToggle("ESP Enabled", true, function(v) Config.espEnabled = v end, 1)
CreateToggle("Show Names", true, function(v) Config.espShowName = v end, 2)
CreateToggle("Show Distance", true, function(v) Config.espShowDistance = v end, 3)
CreateToggle("Laser ESP", true, function(v) Config.espLaserESP = v end, 4)
CreateToggle("Boxes", true, function(v) Config.espBoxes = v end, 5)
CreateToggle("Tracers", false, function(v) Config.espTracers = v end, 6)
CreateToggle("WIN MODE", false, function(v) Config.winModeEnabled = v end, 7)
CreateSlider("Safe Radius", 2, 15, 5, function(v) Config.winModeSafeRadius = v end, 8)
CreateToggle("Aimbot (RMB)", false, function(v) Config.aimbotEnabled = v end, 9)
CreateSlider("Aim Smooth", 0.05, 0.5, 0.2, function(v) Config.aimbotSmooth = v end, 10)
CreateToggle("Punch Aura", false, function(v) Config.punchAuraEnabled = v end, 11)
CreateSlider("Punch Range", 5, 30, 15, function(v) Config.punchAuraRange = v end, 12)
CreateToggle("Auto Farm", false, function(v)
Config.autoFarmEnabled = v
if v then StartAutoFarm() else StopAutoFarm() end
end, 13)
CreateSlider("Farm Delay", 0.5, 5, 1.5, function(v) Config.autoFarmDelay = v end, 14)
CreateToggle("Anti Ragdoll", true, function(v) Config.antiRagdollEnabled = v end, 15)
CreateToggle("Speed Hack", false, function(v) Config.speedHackEnabled = v end, 16)
CreateSlider("Speed Value", 16, 100, 25, function(v) Config.speedHackValue = v end, 17)
local dragging = false
local dragStart, startPos
local function StartDrag(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainContainer.Position
end
end
local function StopDrag(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end
TopBar.InputBegan:Connect(StartDrag)
TopBar.InputEnded:Connect(StopDrag)
MainContainer.InputBegan:Connect(StartDrag)
MainContainer.InputEnded:Connect(StopDrag)
Cache.Connections["Drag"] = UserInputService.InputChanged:Connect(function(input)
if dragging and State.Running and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
MainContainer.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
if isMobile then
local MobileToggle = Instance.new("TextButton")
MobileToggle.Name = "MobileToggle"
MobileToggle.Size = UDim2.new(0, 42, 0, 42)
MobileToggle.Position = UDim2.new(1, -52, 0, 10)
MobileToggle.BackgroundColor3 = GlassBg
MobileToggle.BackgroundTransparency = 0.1
MobileToggle.BorderSizePixel = 0
MobileToggle.Text = "GUI"
MobileToggle.TextSize = 12
MobileToggle.Font = Enum.Font.GothamBold
MobileToggle.TextColor3 = TextPrimary
MobileToggle.ZIndex = 100
MobileToggle.Parent = ScreenGui
local MobileCorner = Instance.new("UICorner")
MobileCorner.CornerRadius = UDim.new(1, 0)
MobileCorner.Parent = MobileToggle
local MobileStroke = Instance.new("UIStroke")
MobileStroke.Color = Accent
MobileStroke.Thickness = 2
MobileStroke.Parent = MobileToggle
local visible = true
local mobileDragging = false
local mobileDragStart, mobileStartPos
MobileToggle.MouseButton1Click:Connect(function()
if not mobileDragging then
visible = not visible
MainContainer.Visible = visible
end
end)
MobileToggle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
mobileDragging = false
mobileDragStart = input.Position
mobileStartPos = MobileToggle.Position
end
end)
MobileToggle.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
local delta = input.Position - mobileDragStart
if delta.Magnitude > 10 then
mobileDragging = true
local screenSize = ScreenGui.AbsoluteSize
local btnSize = MobileToggle.AbsoluteSize
local newX = math.clamp(mobileStartPos.X.Offset + delta.X, 10, screenSize.X - btnSize.X - 10)
local newY = math.clamp(mobileStartPos.Y.Offset + delta.Y, 50, screenSize.Y - btnSize.Y - 10)
MobileToggle.Position = UDim2.new(0, newX, 0, newY)
end
end
end)
MobileToggle.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
task.wait(0.1)
mobileDragging = false
end
end)
local AimToggle = Instance.new("TextButton")
AimToggle.Name = "AimToggle"
AimToggle.Size = UDim2.new(0, 42, 0, 42)
AimToggle.Position = UDim2.new(1, -52, 0, 60)
AimToggle.BackgroundColor3 = Color3.fromRGB(60, 65, 75)
AimToggle.BackgroundTransparency = 0.1
AimToggle.BorderSizePixel = 0
AimToggle.Text = "AIM"
AimToggle.TextSize = 11
AimToggle.Font = Enum.Font.GothamBold
AimToggle.TextColor3 = TextSecondary
AimToggle.Visible = false
AimToggle.ZIndex = 100
AimToggle.Parent = ScreenGui
local AimCorner = Instance.new("UICorner")
AimCorner.CornerRadius = UDim.new(1, 0)
AimCorner.Parent = AimToggle
local AimStroke = Instance.new("UIStroke")
AimStroke.Color = Color3.fromRGB(60, 65, 75)
AimStroke.Thickness = 2
AimStroke.Parent = AimToggle
local aimActive = false
AimToggle.MouseButton1Click:Connect(function()
aimActive = not aimActive
State.MobileAiming = aimActive
AimToggle.BackgroundColor3 = aimActive and Accent or Color3.fromRGB(60, 65, 75)
AimToggle.TextColor3 = aimActive and TextPrimary or TextSecondary
AimStroke.Color = aimActive and Accent or Color3.fromRGB(60, 65, 75)
end)
task.spawn(function()
while State.Running and not State.Unloaded do
task.wait(0.1)
pcall(function()
AimToggle.Visible = Config.aimbotEnabled
if not Config.aimbotEnabled and aimActive then
aimActive = false
State.MobileAiming = false
AimToggle.BackgroundColor3 = Color3.fromRGB(60, 65, 75)
AimToggle.TextColor3 = TextSecondary
AimStroke.Color = Color3.fromRGB(60, 65, 75)
end
end)
end
end)
end
end
local function MainLoop()
if State.Unloaded then return end
Camera = Workspace.CurrentCamera
if not Camera then return end
local now = tick()
local shouldThrottleESP = Config.winModeEnabled and IsMobileDevice
if shouldThrottleESP then
if now - State.LastESPUpdate >= UpdateIntervals.ESP then
State.LastESPUpdate = now
for _, player in ipairs(Players:GetPlayers()) do
pcall(function() ESP.Render(player) end)
end
end
else
for _, player in ipairs(Players:GetPlayers()) do
pcall(function() ESP.Render(player) end)
end
end
pcall(function() Aimbot.Update() end)
pcall(function() WinMode.Update() end)
pcall(function() PunchAura.Update() end)
AntiRagdoll()
SpeedHack()
end
Cache.Connections.RenderStepped = RunService.RenderStepped:Connect(MainLoop)
Cache.Connections.PlayerRemoving = Players.PlayerRemoving:Connect(function(player)
ESP.Remove(player)
Cache.LaserData[player] = nil
end)
Cache.Connections.CharacterAdded = LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
AntiRagdoll()
end)
CreateGUI()
getgenv().BlindShotOP = {
Config = Config,
State = State,
Unload = Unload,
TeleportTo = TeleportTo
}



This script was bugged it is now visible.