HEXSHVORTEX HUB(ALPHA)
Key Required

HEXSHVORTEX HUB(ALPHA)

SUMMON GAMEHEXSHVORTEX_scripterHEXSHVORTEX_scripter 377 views 300 executesUpdated Aug 18, 2026
Unrated
00
Lua Script•994 lines (38275 chars)
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)

Features & Information

Its alpha some functions may not work

Community Comments (0)

No comments yet for this script.

More Scripts for SUMMON GAME