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 }