ZECKHUB CRACKED open source
Key Required

ZECKHUB CRACKED open source

[UPD] Volleyball LegendsScriptCracksScriptCracks 9.9K views 11.4K executesUpdated Oct 6, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•695 lines (19701 chars)
-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
local CoreGui = game:GetService("CoreGui")
local TeleportService = game:GetService("TeleportService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- Local player and camera
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera

-- Initialize lighting settings
Lighting.Brightness = 1
Lighting.Ambient = Color3.fromRGB(128, 128, 128)
Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
Lighting.FogEnd = 1000

-- Remove existing post-processing effects
for _, effect in pairs(Lighting:GetChildren()) do
    if effect:IsA("PostEffect") then
        effect:Destroy()
    end
end

-- Rejoin function for error handling
local function rejoin()
    TeleportService:Teleport(game.PlaceId, LocalPlayer)
end

-- Detect and handle error prompts
CoreGui.ChildAdded:Connect(function(child)
    if child:IsA("ScreenGui") and child.Name == "ErrorPrompt" then
        task.wait(2)
        rejoin()
    end
end)

-- Load Rayfield library
local success, Rayfield = pcall(function()
    return loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
end)

if not success or not Rayfield then
    warn("Failed to load Rayfield")
    return
end

-- Create GUI window
local Window = Rayfield:CreateWindow({
    Name = "ZeckHub",
    LoadingTitle = "Loading ZeckHub...",
    LoadingSubtitle = "by Robertzeck",
    ConfigurationSaving = {
        Enabled = true,
        FileName = "zeckhub_config"
    },
    KeySystem = false,
    KeySettings = {
        Title = "Access Required",
        Subtitle = "Enter the key to continue",
        Note = "Join Discord for key",
        FileName = "zeckhub_key",
        SaveKey = true,
        GrabKeyFromSite = false,
        Key = "robertzeck08"
    },
    Theme = "Dark",
    ToggleUIKeybind = Enum.KeyCode.K
})

-- Hitbox Tab
local HitboxTab = Window:CreateTab("Ball", "flame")
local hitboxScale = 5.0

-- Find the first BasePart in a model
local function findFirstPart(model)
    for _, descendant in ipairs(model:GetDescendants()) do
        if descendant:IsA("BasePart") then
            return descendant
        end
    end
end

-- Update hitboxes for client balls
local function updateHitboxes(scale)
    for _, model in ipairs(Workspace:GetChildren()) do
        if model:IsA("Model") and model.Name:match("^CLIENT_BALL_%d+$") then
            local ball = model:FindFirstChild("Ball.001")
            if not ball then
                local basePart = findFirstPart(model)
                if basePart then
                    ball = Instance.new("Part")
                    ball.Name = "Ball.001"
                    ball.Shape = Enum.PartType.Ball
                    ball.Size = Vector3.new(2, 2, 2) * scale
                    ball.CFrame = basePart.CFrame
                    ball.Anchored = true
                    ball.CanCollide = false
                    ball.Transparency = 0.7
                    ball.Material = Enum.Material.ForceField
                    ball.Color = Color3.fromRGB(0, 255, 0)
                    ball.Parent = model
                end
            else
                ball.Size = Vector3.new(2, 2, 2) * scale
            end
        end
    end
end

-- Remove all hitboxes
local function removeHitboxes()
    for _, model in ipairs(Workspace:GetChildren()) do
        if model:IsA("Model") and model.Name:match("^CLIENT_BALL_%d+$") then
            local ball = model:FindFirstChild("Ball.001")
            if ball then
                ball:Destroy()
            end
        end
    end
end

-- Monitor for new client balls
Workspace.ChildAdded:Connect(function(child)
    if child:IsA("Model") and child.Name:match("^CLIENT_BALL_%d+$") then
        task.wait(0.1)
        updateHitboxes(hitboxScale)
    end
end)

-- Hitbox size slider
HitboxTab:CreateSlider({
    Name = "Hitbox Size",
    Range = {0, 20},
    Increment = 0.1,
    Suffix = "x",
    CurrentValue = hitboxScale,
    Callback = function(value)
        hitboxScale = value
        updateHitboxes(value)
        Rayfield:Notify({
            Title = "Size Changed",
            Content = "Hitbox scale set to " .. value .. "x",
            Duration = 2,
            Image = "maximize"
        })
    end
})

-- Remove hitboxes button
HitboxTab:CreateButton({
    Name = "Remove Hitboxes",
    Callback = function()
        removeHitboxes()
        Rayfield:Notify({
            Title = "Hitboxes Removed",
            Content = "All hitboxes cleared",
            Duration = 2,
            Image = "power-off"
        })
    end
})

-- Character Tab
local CharacterTab = Window:CreateTab("Character", "user-round")
local autoShiftLock = true
local airMovement = false
local airMovementSpeed = 16
local bodyVelocity = nil

-- Get current walk speed
local function getWalkSpeed()
    local humanoid = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid")
    return humanoid and humanoid.WalkSpeed or 16
end

-- Apply air control velocity
local function applyAirControl(rootPart)
    if bodyVelocity then return end
    bodyVelocity = Instance.new("BodyVelocity")
    bodyVelocity.MaxForce = Vector3.new(1e5, 0, 1e5)
    bodyVelocity.Velocity = Vector3.zero
    bodyVelocity.P = 2500
    bodyVelocity.Name = "AirControlVelocity"
    bodyVelocity.Parent = rootPart
end

-- Remove air control velocity
local function removeAirControl()
    if bodyVelocity then
        bodyVelocity:Destroy()
        bodyVelocity = nil
    end
end

-- Character setup
local function setupCharacter(character)
    local humanoid = character:WaitForChild("Humanoid")
    local rootPart = character:WaitForChild("HumanoidRootPart")
    airMovementSpeed = getWalkSpeed()

    -- Handle jumping and shift lock
    humanoid:GetPropertyChangedSignal("Jump"):Connect(function()
        if humanoid.Jump then
            if autoShiftLock then
                task.defer(function()
                    task.wait(0.03)
                    local lookVector = Vector3.new(Camera.CFrame.LookVector.X, 0, Camera.CFrame.LookVector.Z)
                    if lookVector.Magnitude > 0 then
                        rootPart.CFrame = CFrame.lookAt(rootPart.Position, rootPart.Position + lookVector.Unit)
                        humanoid.AutoRotate = false
                    end
                end)
            else
                humanoid.AutoRotate = true
            end
        end
    end)

    -- Handle air movement
    humanoid.StateChanged:Connect(function(oldState, newState)
        if newState == Enum.HumanoidStateType.Freefall then
            if airMovement then
                applyAirControl(rootPart)
            end
        elseif newState == Enum.HumanoidStateType.Landed then
            removeAirControl()
            humanoid.AutoRotate = true
        end
    end)
end

-- Initialize character
if LocalPlayer.Character then
    setupCharacter(LocalPlayer.Character)
end
LocalPlayer.CharacterAdded:Connect(setupCharacter)

-- Auto shift lock toggle
CharacterTab:CreateToggle({
    Name = "Auto Shift Lock",
    CurrentValue = true,
    Callback = function(value)
        autoShiftLock = value
    end
})

-- Air movement toggle
CharacterTab:CreateToggle({
    Name = "Air Movement (Freeflight)",
    CurrentValue = false,
    Callback = function(value)
        airMovement = value
        if not value then
            removeAirControl()
        end
    end
})

-- Air movement speed slider
CharacterTab:CreateSlider({
    Name = "Air Movement Speed",
    Range = {0, 100},
    Increment = 1,
    CurrentValue = getWalkSpeed(),
    Suffix = " studs/s",
    Callback = function(value)
        airMovementSpeed = value
    end
})

-- Update air movement velocity
RunService.RenderStepped:Connect(function()
    if airMovement and bodyVelocity and LocalPlayer.Character then
        local humanoid = LocalPlayer.Character:FindFirstChild("Humanoid")
        if humanoid then
            bodyVelocity.Velocity = humanoid.MoveDirection * airMovementSpeed
        end
    end
end)

-- Lines Tab
local LinesTab = Window:CreateTab("Lines", "eye")
local lineDistance = 50
local lines = {}
local linesEnabled = true
local lineColors = {
    Color3.fromRGB(255, 0, 0),
    Color3.fromRGB(0, 255, 0),
    Color3.fromRGB(0, 0, 255),
    Color3.fromRGB(255, 165, 0),
    Color3.fromRGB(128, 0, 128),
    Color3.fromRGB(255, 255, 0),
    Color3.fromRGB(139, 0, 0),
    Color3.fromRGB(0, 100, 0)
}

-- Remove line for a player
local function removeLine(player)
    local data = lines[player]
    if data then
        if data.beam then data.beam:Destroy() end
        if data.target and data.target.Parent then data.target:Destroy() end
        if data.attachment and data.attachment.Parent then data.attachment:Destroy() end
        lines[player] = nil
    end
end

-- Update line for a player
local function updateLine(player, index)
    if not linesEnabled then
        removeLine(player)
        return
    end

    local character = player.Character
    if not character or not character:FindFirstChild("Head") or not character:FindFirstChild("HumanoidRootPart") then
        removeLine(player)
        return
    end

    local head = character.Head
    local rootPart = character.HumanoidRootPart

    if not lines[player] then
        local attachment = Instance.new("Attachment", head)
        local target = Instance.new("Part")
        target.Anchored = true
        target.CanCollide = false
        target.Transparency = 1
        target.Size = Vector3.new(0.1, 0.1, 0.1)
        target.Parent = Workspace

        local targetAttachment = Instance.new("Attachment", target)
        local beam = Instance.new("Beam")
        beam.Attachment0 = attachment
        beam.Attachment1 = targetAttachment
        beam.Width0 = 0.25
        beam.Width1 = 0.25
        beam.FaceCamera = true
        beam.LightEmission = 1
        beam.Transparency = NumberSequence.new(0.3)
        beam.Color = ColorSequence.new(lineColors[(index - 1) % #lineColors + 1])
        beam.Parent = head

        lines[player] = { beam = beam, target = target, attachment = attachment }
    end

    local data = lines[player]
    data.target.Position = head.Position + rootPart.CFrame.LookVector * lineDistance
end

-- Update lines for all players
RunService.RenderStepped:Connect(function()
    if linesEnabled then
        for index, player in ipairs(Players:GetPlayers()) do
            if player ~= LocalPlayer and player.Team ~= LocalPlayer.Team then
                updateLine(player, index)
            else
                removeLine(player)
            end
        end
    else
        for player in pairs(lines) do
            removeLine(player)
        end
    end
end)

-- Handle player leaving
Players.PlayerRemoving:Connect(removeLine)

-- Enable lines toggle
LinesTab:CreateToggle({
    Name = "Enable Lines",
    CurrentValue = true,
    Callback = function(value)
        linesEnabled = value
        if not value then
            for player in pairs(lines) do
                removeLine(player)
            end
        end
    end
})

-- Line distance slider
LinesTab:CreateSlider({
    Name = "Line Distance",
    Range = {0, 100},
    Increment = 10,
    CurrentValue = lineDistance,
    Suffix = " studs",
    Callback = function(value)
        lineDistance = value
    end
})

-- Note about lines
LinesTab:CreateParagraph({
    Title = "Note",
    Content = "If the lines do not appear, just turn the toggle off and on."
})

-- Visual Tab
local VisualTab = Window:CreateTab("Visual", "moon")
local defaultAmbient = Lighting.Ambient
local defaultBrightness = Lighting.Brightness
local defaultOutdoorAmbient = Lighting.OutdoorAmbient
local defaultFogEnd = Lighting.FogEnd
local nightMode = false
local fullbright = false
local ambientToggle = false
local ambientColor = Color3.fromRGB(100, 100, 255)

-- ESP functionality
local espEnabled = true
local espHighlights = {}
local espConnections = {}

local function isEnemy(player)
    return player ~= LocalPlayer and player.Team and LocalPlayer.Team and player.Team ~= LocalPlayer.Team
end

local function applyESP(player)
    if not player.Character or espHighlights[player] then return end
    local highlight = Instance.new("Highlight")
    highlight.Name = "JumpESP"
    highlight.Adornee = player.Character
    highlight.FillTransparency = 1
    highlight.OutlineTransparency = 0
    highlight.OutlineColor = Color3.fromRGB(255, 255, 0)
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Parent = player.Character
    espHighlights[player] = highlight
end

local function removeESP(player)
    if espHighlights[player] then
        espHighlights[player]:Destroy()
        espHighlights[player] = nil
    end
end

local function cleanupConnections(player)
    if espConnections[player] then
        for _, connection in pairs(espConnections[player]) do
            pcall(function() connection:Disconnect() end)
        end
        espConnections[player] = nil
    end
    removeESP(player)
end

local function setupESP(player)
    if player == LocalPlayer then return end
    local function onCharacterAdded(character)
        cleanupConnections(player)
        local humanoid = character:WaitForChild("Humanoid", 3)
        local head = character:FindFirstChild("Head")
        if not humanoid or not head then return end

        local stateConnection = humanoid.StateChanged:Connect(function(_, newState)
            if not espEnabled then return end
            if isEnemy(player) then
                if newState == Enum.HumanoidStateType.Jumping or newState == Enum.HumanoidStateType.Freefall then
                    applyESP(player)
                elseif newState == Enum.HumanoidStateType.Landed then
                    removeESP(player)
                end
            else
                removeESP(player)
            end
        end)

        local heartbeatConnection = RunService.Heartbeat:Connect(function()
            if not player.Character or not isEnemy(player) then
                removeESP(player)
            else
                local state = humanoid:GetState()
                if state ~= Enum.HumanoidStateType.Jumping and state ~= Enum.HumanoidStateType.Freefall then
                    removeESP(player)
                end
            end
        end)

        espConnections[player] = { stateConnection, heartbeatConnection }
    end

    if player.Character then
        onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
end

-- Initialize ESP for existing players
for _, player in ipairs(Players:GetPlayers()) do
    setupESP(player)
end
Players.PlayerAdded:Connect(setupESP)

-- ESP toggle
VisualTab:CreateToggle({
    Name = "ESP (Jump)",
    CurrentValue = true,
    Callback = function(value)
        espEnabled = value
        if not value then
            for player in pairs(espHighlights) do
                removeESP(player)
            end
        end
    end
})

-- Night mode toggle
local function toggleNightMode(enabled)
    nightMode = enabled
    if enabled then
        Lighting.Ambient = Color3.fromRGB(20, 20, 20)
        Lighting.Brightness = 1
    else
        Lighting.Ambient = defaultAmbient
        Lighting.Brightness = defaultBrightness
    end
end

-- Fullbright toggle
local function toggleFullbright(enabled)
    fullbright = enabled
    if enabled then
        Lighting.Brightness = 3
        Lighting.Ambient = Color3.new(1, 1, 1)
        Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
    else
        Lighting.Brightness = defaultBrightness
        Lighting.Ambient = defaultAmbient
        Lighting.OutdoorAmbient = defaultOutdoorAmbient
    end
end

-- Create bloom effect
local bloomEffect = Instance.new("BloomEffect", Lighting)
bloomEffect.Intensity = 0
bloomEffect.Size = 56
bloomEffect.Threshold = 1

-- Night mode toggle
VisualTab:CreateToggle({
    Name = "Night Mode",
    CurrentValue = false,
    Callback = function(value)
        toggleNightMode(value)
        Rayfield:Notify({
            Title = value and "Night Mode on" or "Night Mode off",
            Content = value and "Ambient applied." or "Ambient reset.",
            Duration = 3,
            Image = value and "moon" or "sun"
        })
    end
})

-- Fullbright toggle
VisualTab:CreateToggle({
    Name = "Fullbright",
    CurrentValue = false,
    Callback = function(value)
        toggleFullbright(value)
        Rayfield:Notify({
            Title = "Fullbright",
            Content = value and "Fullbright on." or "Fullbright off.",
            Duration = 2,
            Image = value and "flashlight" or "x"
        })
    end
})

-- Fog end distance slider
VisualTab:CreateSlider({
    Name = "Fog End Distance",
    Range = {0, 1000},
    Increment = 50,
    CurrentValue = Lighting.FogEnd,
    Suffix = " studs",
    Callback = function(value)
        Lighting.FogEnd = value
    end
})

-- Ambient color picker
VisualTab:CreateColorPicker({
    Name = "Ambient Color",
    Color = Lighting.Ambient,
    Callback = function(color)
        Lighting.Ambient = color
    end
})

-- Ambient color toggle
VisualTab:CreateToggle({
    Name = "Ambient Color Toggle",
    CurrentValue = false,
    Callback = function(value)
        ambientToggle = value
        if value then
            Lighting.Ambient = ambientColor
        else
            Lighting.Ambient = defaultAmbient
        end
    end
})

-- Bloom intensity slider
VisualTab:CreateSlider({
    Name = "Bloom Intensity",
    Range = {0, 5},
    Increment = 0.1,
    CurrentValue = bloomEffect.Intensity,
    Suffix = "",
    Callback = function(value)
        bloomEffect.Intensity = value
    end
})

-- Save default lighting settings
local defaultSettings = {
    Brightness = Lighting.Brightness,
    Ambient = Lighting.Ambient,
    OutdoorAmbient = Lighting.OutdoorAmbient,
    FogEnd = Lighting.FogEnd,
    Effects = {}
}

for _, effect in pairs(Lighting:GetChildren()) do
    if effect:IsA("PostEffect") then
        defaultSettings.Effects[#defaultSettings.Effects + 1] = effect:Clone()
    end
end

-- Reset lighting settings
VisualTab:CreateButton({
    Name = "🔄 Reset All",
    Callback = function()
        Lighting.Brightness = defaultSettings.Brightness
        Lighting.Ambient = defaultSettings.Ambient
        Lighting.OutdoorAmbient = defaultSettings.OutdoorAmbient
        Lighting.FogEnd = defaultSettings.FogEnd
        for _, effect in pairs(Lighting:GetChildren()) do
            if effect:IsA("PostEffect") then
                effect:Destroy()
            end
        end
        for _, effect in pairs(defaultSettings.Effects) do
            local clonedEffect = effect:Clone()
            clonedEffect.Parent = Lighting
        end
        Rayfield:Notify({
            Title = "Ambient Reset",
            Content = "Ambient settings reset.",
            Duration = 3,
            Image = "refresh-cw"
        })
    end
})

-- Others Tab
local OthersTab = Window:CreateTab("Others", "alert-triangle")

-- Rejoin button
OthersTab:CreateButton({
    Name = "Rejoin",
    Callback = rejoin
})

-- Panic button
OthersTab:CreateButton({
    Name = "Turn Off All",
    Callback = function()
        removeHitboxes()
        autoShiftLock = false
        airMovement = false
        linesEnabled = false
        for player in pairs(lines) do
            removeLine(player)
        end
        Rayfield:Notify({
            Title = "Panic Mode",
            Content = "All features disabled.",
            Duration = 3,
            Image = "skull"
        })
    end
})

Features & Information

ZECK HUB CRACKED! open source

Community Comments (3)

Jun890Jun890Oct 6, 2025

Ng ts is useless

UhrvnsUhrvnsOct 7, 2025

Nc ty

slimepointeslimepointeDec 27, 2025

still works, 3 months later

More Scripts for [UPD] Volleyball Legends