local CoreGui = game:GetService("CoreGui") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local monsterPaths = { ReplicatedStorage:WaitForChild("MutatedMonsters"), ReplicatedStorage:WaitForChild("Monsters") } local useAbility = ReplicatedStorage:WaitForChild("Events"):WaitForChild("UseAbility") local monsterNames = {} for _, path in pairs(monsterPaths) do for _, monster in pairs(path:GetChildren()) do monsterNames[monster.Name] = true end end local GUI = Instance.new("ScreenGui") GUI.Name = "HexSH_Hub" GUI.Parent = CoreGui GUI.ResetOnSpawn = false GUI.IgnoreGuiInset = true local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 600, 0, 400) MainFrame.Position = UDim2.new(0.5, -300, 0.5, -200) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.Parent = GUI local UIPadding_Main = Instance.new("UIPadding") UIPadding_Main.PaddingTop = UDim.new(0, 10) UIPadding_Main.PaddingLeft = UDim.new(0, 10) UIPadding_Main.PaddingRight = UDim.new(0, 10) UIPadding_Main.PaddingBottom = UDim.new(0, 10) UIPadding_Main.Parent = MainFrame local RainbowBorder = Instance.new("Frame") RainbowBorder.Name = "RainbowBorder" RainbowBorder.Size = UDim2.new(1, 2, 1, 2) RainbowBorder.Position = UDim2.new(0, -1, 0, -1) RainbowBorder.BackgroundTransparency = 1 RainbowBorder.BorderSizePixel = 0 RainbowBorder.Parent = MainFrame local BorderGradient = Instance.new("UIGradient") BorderGradient.Rotation = 45 BorderGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.2, Color3.fromRGB(255, 165, 0)), ColorSequenceKeypoint.new(0.4, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.6, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.8, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(128, 0, 128)) }) BorderGradient.Parent = RainbowBorder local RainbowStroke = Instance.new("UIStroke") RainbowStroke.Color = Color3.new(1, 1, 1) RainbowStroke.Thickness = 1.5 RainbowStroke.Parent = RainbowBorder task.spawn(function() local phase = 0 while true do phase = (phase + 0.005) % 1 BorderGradient.Offset = Vector2.new(phase, 0) task.wait() end end) local SnowContainer = Instance.new("Frame") SnowContainer.Name = "SnowContainer" SnowContainer.Size = UDim2.new(1, 0, 1, 0) SnowContainer.BackgroundTransparency = 1 SnowContainer.ClipsDescendants = true SnowContainer.Parent = MainFrame local snowParticles = {} for i = 1, 80 do local dot = Instance.new("Frame") dot.Size = UDim2.new(0, 2, 0, 2) dot.Position = UDim2.new(math.random(), math.random() * -0.5, 0, 0) dot.BackgroundColor3 = Color3.fromRGB(255, 255, 255) dot.BackgroundTransparency = 0.3 dot.Parent = SnowContainer table.insert(snowParticles, { frame = dot, speed = 0.5 + math.random() * 1.5, startX = dot.Position.X.Scale, offsetY = dot.Position.Y.Scale }) end RunService.RenderStepped:Connect(function() for _, p in ipairs(snowParticles) do p.offsetY = p.offsetY + (p.speed * 0.002) if p.offsetY > 1.2 then p.offsetY = -0.2 p.startX = math.random() end p.frame.Position = UDim2.new(p.startX, 0, p.offsetY, 0) end end) local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 40) Title.Position = UDim2.new(0, 0, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "HexSH hub" Title.TextColor3 = Color3.fromRGB(220, 220, 220) Title.TextSize = 28 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = MainFrame local UIPadding_Title = Instance.new("UIPadding") UIPadding_Title.PaddingLeft = UDim.new(0, 10) UIPadding_Title.Parent = Title local TabContainer = Instance.new("Frame") TabContainer.Size = UDim2.new(1, 0, 0, 30) TabContainer.Position = UDim2.new(0, 0, 0, 50) TabContainer.BackgroundTransparency = 1 TabContainer.Parent = MainFrame local TabContent = Instance.new("Frame") TabContent.Size = UDim2.new(1, 0, 1, -90) TabContent.Position = UDim2.new(0, 0, 0, 90) TabContent.BackgroundTransparency = 1 TabContent.ClipsDescendants = true TabContent.Parent = MainFrame local tabs = {} local tabNames = {"Main", "Perfect class", "Protect", "Auto farm", "ESP"} local tabButtons = {} for i, name in ipairs(tabNames) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 120, 1, 0) btn.Position = UDim2.new((i-1)*0.2, 0, 0, 0) btn.BackgroundColor3 = Color3.fromRGB(25, 25, 25) btn.Text = name btn.TextColor3 = Color3.fromRGB(180, 180, 180) btn.TextSize = 14 btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = TabContainer table.insert(tabButtons, btn) local content = Instance.new("Frame") content.Size = UDim2.new(1, 0, 1, 0) content.BackgroundTransparency = 1 content.Visible = (i == 1) content.Parent = TabContent table.insert(tabs, content) btn.MouseButton1Click:Connect(function() for j, c in ipairs(tabs) do c.Visible = (j == i) end for j, b in ipairs(tabButtons) do b.BackgroundColor3 = (j == i) and Color3.fromRGB(40, 40, 40) or Color3.fromRGB(25, 25, 25) b.TextColor3 = (j == i) and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180) end end) btn.TouchTap:Connect(function() for j, c in ipairs(tabs) do c.Visible = (j == i) end for j, b in ipairs(tabButtons) do b.BackgroundColor3 = (j == i) and Color3.fromRGB(40, 40, 40) or Color3.fromRGB(25, 25, 25) b.TextColor3 = (j == i) and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(180, 180, 180) end end) end local function makeToggle(parent, yPos, label, onFunction, offFunction) local container = Instance.new("Frame") container.Size = UDim2.new(1, -20, 0, 40) container.Position = UDim2.new(0, 10, 0, yPos) container.BackgroundTransparency = 1 container.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.5, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = Color3.fromRGB(200, 200, 200) lbl.TextSize = 14 lbl.Font = Enum.Font.GothamBold lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = container local track = Instance.new("Frame") track.Size = UDim2.new(0, 80, 0, 24) track.Position = UDim2.new(1, -80, 0.5, -12) track.BackgroundColor3 = Color3.fromRGB(30, 30, 30) track.BorderSizePixel = 0 track.Parent = container local thumb = Instance.new("Frame") thumb.Size = UDim2.new(0, 30, 1, 0) thumb.Position = UDim2.new(0, 0, 0, 0) thumb.BackgroundColor3 = Color3.fromRGB(60, 60, 60) thumb.BorderSizePixel = 0 thumb.Parent = track local state = false local function toggle() state = not state local targetPos = state and UDim2.new(1, -30, 0, 0) or UDim2.new(0, 0, 0, 0) local targetColor = state and Color3.fromRGB(80, 200, 80) or Color3.fromRGB(60, 60, 60) TweenService:Create(thumb, TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = targetPos, BackgroundColor3 = targetColor}):Play() if state then if onFunction then onFunction() end else if offFunction then offFunction() end end end track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then toggle() end end) track.TouchTap:Connect(toggle) end local errorOverlay = Instance.new("Frame") errorOverlay.Size = UDim2.new(1, 0, 1, 0) errorOverlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0) errorOverlay.BackgroundTransparency = 0.65 errorOverlay.BorderSizePixel = 0 errorOverlay.Visible = false errorOverlay.Parent = GUI local errorFrame = Instance.new("Frame") errorFrame.Size = UDim2.new(0, 520, 0, 320) errorFrame.Position = UDim2.new(0.5, -260, 0.5, -160) errorFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 18) errorFrame.BorderSizePixel = 2 errorFrame.BorderColor3 = Color3.fromRGB(40, 40, 40) errorFrame.ClipsDescendants = true errorFrame.Visible = false errorFrame.Parent = errorOverlay local erRainbowBorder = Instance.new("Frame") erRainbowBorder.Size = UDim2.new(1, 4, 1, 4) erRainbowBorder.Position = UDim2.new(0, -2, 0, -2) erRainbowBorder.BackgroundColor3 = Color3.fromRGB(255, 0, 0) erRainbowBorder.BorderSizePixel = 0 erRainbowBorder.Parent = errorFrame local erBorderGradient = Instance.new("UIGradient") erBorderGradient.Rotation = 45 erBorderGradient.Offset = Vector2.new(0, 0) erBorderGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.25, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.75, Color3.fromRGB(255, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)) }) erBorderGradient.Parent = erRainbowBorder local erSnowContainer = Instance.new("Frame") erSnowContainer.Size = UDim2.new(1, 0, 1, 0) erSnowContainer.BackgroundTransparency = 1 erSnowContainer.BorderSizePixel = 0 erSnowContainer.ClipsDescendants = true erSnowContainer.Parent = errorFrame local erCloseButton = Instance.new("TextButton") erCloseButton.Size = UDim2.new(0, 36, 0, 36) erCloseButton.Position = UDim2.new(1, -44, 0, 6) erCloseButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) erCloseButton.BorderSizePixel = 1 erCloseButton.BorderColor3 = Color3.fromRGB(60, 60, 60) erCloseButton.Text = "X" erCloseButton.TextColor3 = Color3.fromRGB(200, 200, 200) erCloseButton.TextSize = 20 erCloseButton.Font = Enum.Font.SourceSansBold erCloseButton.Parent = errorFrame erCloseButton.MouseEnter:Connect(function() erCloseButton.BackgroundColor3 = Color3.fromRGB(60, 20, 20) erCloseButton.BorderColor3 = Color3.fromRGB(180, 40, 40) end) erCloseButton.MouseLeave:Connect(function() erCloseButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) erCloseButton.BorderColor3 = Color3.fromRGB(60, 60, 60) end) erCloseButton.MouseButton1Click:Connect(function() errorOverlay.Visible = false errorFrame.Visible = false end) local erTitle = Instance.new("TextLabel") erTitle.Size = UDim2.new(0.9, 0, 0, 44) erTitle.Position = UDim2.new(0.05, 0, 0, 10) erTitle.BackgroundTransparency = 1 erTitle.Text = "CRITICAL ERROR" erTitle.TextColor3 = Color3.fromRGB(255, 80, 80) erTitle.TextSize = 24 erTitle.Font = Enum.Font.SourceSansBold erTitle.TextXAlignment = Enum.TextXAlignment.Left erTitle.Parent = errorFrame local erMessage = Instance.new("TextLabel") erMessage.Size = UDim2.new(0.9, 0, 0, 120) erMessage.Position = UDim2.new(0.05, 0, 0, 70) erMessage.BackgroundTransparency = 1 erMessage.TextColor3 = Color3.fromRGB(200, 200, 200) erMessage.TextSize = 16 erMessage.Font = Enum.Font.SourceSans erMessage.TextWrapped = true erMessage.TextXAlignment = Enum.TextXAlignment.Left erMessage.TextYAlignment = Enum.TextYAlignment.Top erMessage.Parent = errorFrame local erCode = Instance.new("TextLabel") erCode.Size = UDim2.new(0.9, 0, 0, 24) erCode.Position = UDim2.new(0.05, 0, 0, 200) erCode.BackgroundTransparency = 1 erCode.TextColor3 = Color3.fromRGB(150, 150, 150) erCode.TextSize = 14 erCode.Font = Enum.Font.SourceSans erCode.TextXAlignment = Enum.TextXAlignment.Left erCode.Parent = errorFrame local erTime = Instance.new("TextLabel") erTime.Size = UDim2.new(0.5, 0, 0, 20) erTime.Position = UDim2.new(0.05, 0, 1, -30) erTime.BackgroundTransparency = 1 erTime.Text = os.date("%H:%M:%S") erTime.TextColor3 = Color3.fromRGB(100, 100, 100) erTime.TextSize = 12 erTime.Font = Enum.Font.SourceSans erTime.TextXAlignment = Enum.TextXAlignment.Left erTime.Parent = errorFrame local erSnowParticles = {} for i = 1, 85 do local p = Instance.new("Frame") p.Size = UDim2.new(0, math.random(2, 4), 0, math.random(2, 4)) p.Position = UDim2.new(math.random() / 1.2, 0, math.random() / 1.2, 0) p.BackgroundColor3 = Color3.fromRGB(220, 220, 220) p.BackgroundTransparency = 0.2 + math.random() * 0.3 p.BorderSizePixel = 0 p.Parent = erSnowContainer table.insert(erSnowParticles, { Object = p, Speed = 35 + math.random() * 65, Wobble = math.random() * 20 - 10, StartX = p.Position.X.Scale, Size = p.Size.X.Offset }) end local erConnection erConnection = RunService.RenderStepped:Connect(function(dt) for _, p in ipairs(erSnowParticles) do local newY = p.Object.Position.Y.Scale + (p.Speed * dt / 1200) if newY > 1.2 then newY = -0.2 p.StartX = math.random() / 1.2 p.Object.Size = UDim2.new(0, math.random(2, 4), 0, math.random(2, 4)) p.Size = p.Object.Size.X.Offset end local wobbleOffset = math.sin(tick() * 2 + p.StartX * 100) * p.Wobble * dt * 4 p.Object.Position = UDim2.new(p.StartX + wobbleOffset / 1000, 0, newY, 0) end local borderOffset = (borderOffset + dt * 0.2) % 1 erBorderGradient.Offset = Vector2.new(borderOffset, borderOffset * 0.5) end) local function showErrorPopup(message) erMessage.Text = message erTime.Text = os.date("%H:%M:%S") errorOverlay.Visible = true errorFrame.Visible = true TweenService:Create(errorFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Size = UDim2.new(0, 520, 0, 320) }):Play() end local isSpeedHack = false local speedHackLoop local speedValue = 1.0 local function toggleSpeedHack(state) isSpeedHack = state if state then showErrorPopup("DO NOT USE THIS FUNCTION IF YOU HAVE LAGGY PHONE! IT CAN KICK YOU") speedHackLoop = task.spawn(function() while isSpeedHack do task.wait(0.1) local char = LocalPlayer.Character if char and char:FindFirstChild("Humanoid") then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.WalkSpeed = speedValue end end end end) else if speedHackLoop then task.cancel(speedHackLoop) end local char = LocalPlayer.Character if char and char:FindFirstChild("Humanoid") then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.WalkSpeed = 16 end end end end local function makeSpeedInput(parent, yPos) local container = Instance.new("Frame") container.Size = UDim2.new(1, -20, 0, 40) container.Position = UDim2.new(0, 10, 0, yPos) container.BackgroundTransparency = 1 container.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.4, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = "Speed value (max 1.5)" lbl.TextColor3 = Color3.fromRGB(200, 200, 200) lbl.TextSize = 13 lbl.Font = Enum.Font.GothamBold lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = container local input = Instance.new("TextBox") input.Size = UDim2.new(0, 60, 0, 24) input.Position = UDim2.new(0.7, 0, 0.5, -12) input.BackgroundColor3 = Color3.fromRGB(30, 30, 30) input.TextColor3 = Color3.fromRGB(255, 255, 255) input.TextSize = 14 input.Font = Enum.Font.GothamBold input.Text = "1.0" input.Parent = container input.FocusLost:Connect(function() local val = tonumber(input.Text) if val and val > 0 and val <= 1.5 then speedValue = val else input.Text = "1.0" speedValue = 1.0 end end) return container end local isSlowSmartPunch = false local isFastSmartPunch = false local isESPPlayer = false local isESPMonster = false local isKiller = false local isGodmode = false local isTeleport = false local slowSmartPunchLoop, fastSmartPunchLoop, espPlayerLoop, espMonsterLoop, killerLoop, godmodeLoop, teleportLoop local function toggleSlowSmartPunch(state) isSlowSmartPunch = state if state then slowSmartPunchLoop = task.spawn(function() while isSlowSmartPunch do task.wait(0.5) local char = LocalPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then continue end local root = char.HumanoidRootPart for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone and clone:FindFirstChild("HumanoidRootPart") then local monsterRoot = clone.HumanoidRootPart local dist = (monsterRoot.Position - root.Position).Magnitude if dist < 15 then local direction = (monsterRoot.Position - root.Position).Unit local ray = Ray.new(root.Position, direction * dist) local hit, pos, normal = Workspace:FindPartOnRayWithIgnoreList(ray, {char, clone}) if hit then local canPass = hit.CanCollide == false or hit.Transparency > 0.5 if not canPass then local distanceToHit = (pos - root.Position).Magnitude if distanceToHit < dist then continue end end end local lookVector = root.CFrame.LookVector local angle = math.deg(math.acos(lookVector:Dot(direction) / (lookVector.Magnitude * direction.Magnitude))) if angle < 60 then useAbility:FireServer() break end end end end end end) else if slowSmartPunchLoop then task.cancel(slowSmartPunchLoop) end end end local function toggleFastSmartPunch(state) isFastSmartPunch = state if state then fastSmartPunchLoop = task.spawn(function() while isFastSmartPunch do task.wait(0.001) local char = LocalPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then continue end local root = char.HumanoidRootPart for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone and clone:FindFirstChild("HumanoidRootPart") then local monsterRoot = clone.HumanoidRootPart local dist = (monsterRoot.Position - root.Position).Magnitude if dist < 15 then local direction = (monsterRoot.Position - root.Position).Unit local ray = Ray.new(root.Position, direction * dist) local hit, pos, normal = Workspace:FindPartOnRayWithIgnoreList(ray, {char, clone}) if hit then local canPass = hit.CanCollide == false or hit.Transparency > 0.5 if not canPass then local distanceToHit = (pos - root.Position).Magnitude if distanceToHit < dist then continue end end end local lookVector = root.CFrame.LookVector local angle = math.deg(math.acos(lookVector:Dot(direction) / (lookVector.Magnitude * direction.Magnitude))) if angle < 60 then useAbility:FireServer() break end end end end end end) else if fastSmartPunchLoop then task.cancel(fastSmartPunchLoop) end end end local function toggleESPPlayer(state) isESPPlayer = state if state then espPlayerLoop = task.spawn(function() while isESPPlayer do task.wait(0.5) for _, player in pairs(Players:GetPlayers()) do if player == LocalPlayer then continue end local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") then continue end local root = char.HumanoidRootPart local head = char:FindFirstChild("Head") if not head then continue end local displayName = player.DisplayName local humanoid = char:FindFirstChildOfClass("Humanoid") local hp = humanoid and math.floor(humanoid.Health) or 0 local maxHp = humanoid and math.floor(humanoid.MaxHealth) or 100 local billboard = root:FindFirstChild("ESPBillboard") if not billboard then billboard = Instance.new("BillboardGui") billboard.Name = "ESPBillboard" billboard.Size = UDim2.new(0, 120, 0, 50) billboard.StudsOffset = Vector3.new(0, 3, 0) billboard.AlwaysOnTop = true billboard.Parent = root local nameLabel = Instance.new("TextLabel") nameLabel.Name = "NameLabel" nameLabel.Size = UDim2.new(1, 0, 0, 25) nameLabel.Position = UDim2.new(0, 0, 0, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = displayName nameLabel.TextColor3 = Color3.new(1, 1, 1) nameLabel.TextSize = 14 nameLabel.Font = Enum.Font.SourceSansBold nameLabel.Parent = billboard local hpLabel = Instance.new("TextLabel") hpLabel.Name = "HPLabel" hpLabel.Size = UDim2.new(1, 0, 0, 20) hpLabel.Position = UDim2.new(0, 0, 0, 25) hpLabel.BackgroundTransparency = 1 hpLabel.Text = hp .. "/" .. maxHp hpLabel.TextColor3 = Color3.new(0, 1, 0) hpLabel.TextSize = 12 hpLabel.Font = Enum.Font.SourceSans hpLabel.Parent = billboard else billboard:FindFirstChild("NameLabel").Text = displayName local hpLabel = billboard:FindFirstChild("HPLabel") hpLabel.Text = hp .. "/" .. maxHp local ratio = hp / maxHp hpLabel.TextColor3 = ratio > 0.5 and Color3.new(0, 1, 0) or ratio > 0.25 and Color3.new(1, 1, 0) or Color3.new(1, 0, 0) end end end end) else if espPlayerLoop then task.cancel(espPlayerLoop) end for _, player in pairs(Players:GetPlayers()) do if player == LocalPlayer then continue end local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then local billboard = char.HumanoidRootPart:FindFirstChild("ESPBillboard") if billboard then billboard:Destroy() end end end end end local function toggleESPMonster(state) isESPMonster = state if state then espMonsterLoop = task.spawn(function() while isESPMonster do task.wait(0.5) for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone and clone:FindFirstChild("HumanoidRootPart") then local highlight = clone:FindFirstChild("Highlight") if not highlight then highlight = Instance.new("Highlight") highlight.Name = "Highlight" highlight.Parent = clone end highlight.FillTransparency = 1 highlight.OutlineColor = Color3.fromHSV((tick() / 10 + 0.5) % 1, 1, 1) highlight.OutlineTransparency = 0 end end end end) else if espMonsterLoop then task.cancel(espMonsterLoop) end for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone then local highlight = clone:FindFirstChild("Highlight") if highlight then highlight:Destroy() end end end end end local function toggleKiller(state) isKiller = state if state then showErrorPopup("ITS MAY NOT WORK IF SERVER HAVE HIGH PING OR HAVE SO LAGGY PLAYER IN MATCH. ALSO IF SOMEONE ELSE SUMMON ITS NOT GONNA WORK AND KILLER WORK ONLY 5 SECOUND WHEN MONSTER SPAWN(also can make monster invisible and not work on skinless and bobblehead)") killerLoop = task.spawn(function() while isKiller do task.wait(0.001) for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone and clone:FindFirstChild("HumanoidRootPart") then local root = clone.HumanoidRootPart local ball = clone:FindFirstChild("MonsterBall") if not ball then ball = Instance.new("Part") ball.Name = "MonsterBall" ball.Size = Vector3.new(5, 5, 5) ball.Position = root.Position ball.Anchored = true ball.CanCollide = true ball.Transparency = 0.5 ball.Color = Color3.new(1, 0, 0) ball.Parent = clone ball.Touched:Connect(function(hit) if hit.Parent == LocalPlayer.Character then local charRoot = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if charRoot then local dir = (charRoot.Position - ball.Position).Unit charRoot.Velocity = dir * 20 end end if hit.Parent == clone then local monsterRoot = clone:FindFirstChild("HumanoidRootPart") if monsterRoot then local dir = (monsterRoot.Position - ball.Position).Unit monsterRoot.Velocity = dir * 5000 task.wait(0.1) if (monsterRoot.Position.Magnitude > 1000) then clone:Destroy() else for i = 1, 10 do local randomDir = Vector3.new(math.random(-1,1), math.random(-1,1), math.random(-1,1)).Unit monsterRoot.Velocity = randomDir * 2000 task.wait(0.05) end end end end end) else ball.Position = root.Position if (root.Position.Magnitude > 1000) then clone:Destroy() end end end end end end) else if killerLoop then task.cancel(killerLoop) end for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone then local ball = clone:FindFirstChild("MonsterBall") if ball then ball:Destroy() end end end end end local function toggleGodmode(state) isGodmode = state if state then showErrorPopup("ITS FICTION MAY NOT WORK WITH BAD PING!!! AND ITS IN BETA") godmodeLoop = task.spawn(function() while isGodmode do task.wait(0.001) for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone and clone:FindFirstChild("HumanoidRootPart") then local shield = clone:FindFirstChild("GodShield") if not shield then shield = Instance.new("Part") shield.Name = "GodShield" shield.Size = Vector3.new(15, 15, 15) shield.Position = clone.HumanoidRootPart.Position shield.Anchored = true shield.CanCollide = true shield.Transparency = 0.3 shield.Color = Color3.new(1, 1, 0) shield.Material = Enum.Material.SmoothPlastic shield.Parent = clone shield.Touched:Connect(function(hit) if hit.Parent == LocalPlayer.Character then local charRoot = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if charRoot then local dir = (charRoot.Position - shield.Position).Unit charRoot.Velocity = dir * 30 end end end) else shield.Position = clone.HumanoidRootPart.Position end end end end end) else if godmodeLoop then task.cancel(godmodeLoop) end for name, _ in pairs(monsterNames) do local clone = Workspace:FindFirstChild(name) if clone then local shield = clone:FindFirstChild("GodShield") if shield then shield:Destroy() end end end end end local function toggleTeleport(state) isTeleport = state if state then teleportLoop = task.spawn(function() while isTeleport do task.wait(0.1) local spawns = Workspace:FindFirstChild("SpawnLocation") if spawns then LocalPlayer.Character.HumanoidRootPart.CFrame = spawns.CFrame end end end) else if teleportLoop then task.cancel(teleportLoop) end end end makeToggle(tabs[1], 10, "Speed hack (DO NOT USE IF YOU LAGGING)", function() toggleSpeedHack(true) end, function() toggleSpeedHack(false) end ) makeSpeedInput(tabs[1], 60) makeToggle(tabs[2], 10, "Slow Smart Punch", function() toggleSlowSmartPunch(true) end, function() toggleSlowSmartPunch(false) end ) makeToggle(tabs[2], 60, "Fast Smart Punch", function() toggleFastSmartPunch(true) end, function() toggleFastSmartPunch(false) end ) makeToggle(tabs[3], 10, "Godmode", function() toggleGodmode(true) end, function() toggleGodmode(false) end ) makeToggle(tabs[4], 10, "Monster Killer (TOO OP)", function() toggleKiller(true) end, function() toggleKiller(false) end ) makeToggle(tabs[5], 10, "ESP Players", function() toggleESPPlayer(true) end, function() toggleESPPlayer(false) end ) makeToggle(tabs[5], 60, "ESP Monster", function() toggleESPMonster(true) end, function() toggleESPMonster(false) end ) local DestroyBtn = Instance.new("TextButton") DestroyBtn.Size = UDim2.new(0.5, 0, 0, 36) DestroyBtn.Position = UDim2.new(0.25, 0, 1, -46) DestroyBtn.BackgroundColor3 = Color3.fromRGB(40, 10, 10) DestroyBtn.Text = "Destroy UI" DestroyBtn.TextColor3 = Color3.fromRGB(255, 80, 80) DestroyBtn.TextSize = 14 DestroyBtn.Font = Enum.Font.GothamBold DestroyBtn.BorderSizePixel = 0 DestroyBtn.Parent = MainFrame local destroyStroke = Instance.new("UIStroke") destroyStroke.Color = Color3.fromRGB(150, 50, 50) destroyStroke.Thickness = 1 destroyStroke.Parent = DestroyBtn DestroyBtn.MouseButton1Click:Connect(function() GUI:Destroy() end) DestroyBtn.TouchTap:Connect(function() GUI:Destroy() end) local dragging = false local dragInput = nil local dragStart = nil local startPos = nil MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) MainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale + (delta.X / GUI.AbsoluteSize.X), 0, startPos.Y.Scale + (delta.Y / GUI.AbsoluteSize.Y), 0) end end) local minimized = false local MinSquare = Instance.new("Frame") MinSquare.Size = UDim2.new(0, 50, 0, 50) MinSquare.Position = UDim2.new(0.95, 0, 0.5, -25) MinSquare.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MinSquare.BorderSizePixel = 0 MinSquare.Visible = false MinSquare.Parent = GUI local MinGradient = Instance.new("UIGradient") MinGradient.Rotation = 45 MinGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.25, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.75, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)) }) MinGradient.Parent = MinSquare local MinStroke = Instance.new("UIStroke") MinStroke.Color = Color3.new(1, 1, 1) MinStroke.Thickness = 2 MinStroke.Parent = MinSquare task.spawn(function() local phase = 0 while true do phase = (phase + 0.01) % 1 MinGradient.Offset = Vector2.new(phase, 0) task.wait() end end) local MinBtn = Instance.new("TextButton") MinBtn.Size = UDim2.new(0, 30, 0, 20) MinBtn.Position = UDim2.new(1, -35, 0, 5) MinBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) MinBtn.Text = "--" MinBtn.TextColor3 = Color3.fromRGB(200, 200, 200) MinBtn.TextSize = 12 MinBtn.Font = Enum.Font.GothamBold MinBtn.BorderSizePixel = 0 MinBtn.Parent = MainFrame local function toggleMinimize() minimized = not minimized if minimized then MainFrame.Visible = false MinSquare.Visible = true MinSquare.Position = UDim2.new(0.95, 0, 0.5, -25) else MainFrame.Visible = true MinSquare.Visible = false end end MinBtn.MouseButton1Click:Connect(toggleMinimize) MinBtn.TouchTap:Connect(toggleMinimize) MinSquare.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then minimized = false MainFrame.Visible = true MinSquare.Visible = false end end) MinSquare.TouchTap:Connect(function() minimized = false MainFrame.Visible = true MinSquare.Visible = false end) local minDragging = false local minDragInput = nil local minDragStart = nil local minStartPos = nil MinSquare.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then minDragging = true minDragStart = input.Position minStartPos = MinSquare.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then minDragging = false end end) end end) MinSquare.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then minDragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == minDragInput and minDragging then local delta = input.Position - minDragStart MinSquare.Position = UDim2.new(minStartPos.X.Scale + (delta.X / GUI.AbsoluteSize.X), 0, minStartPos.Y.Scale + (delta.Y / GUI.AbsoluteSize.Y), 0) end end)