Kali Hub LEAKED SOURCE no key
Key Required

Kali Hub LEAKED SOURCE no key

[UPD]🏈Football Legends🏈WaylonTheEvidentWaylonTheEvident 10.6K views 20.7K executesUpdated Dec 8, 2025
4.2/ 5(6 votes)
5183% Positive
Lua Script•594 lines (21462 chars)
repeat task.wait() until game:IsLoaded()

if game.GameId == 6505338302 then
    local Players = game:GetService("Players")
    local TweenService = game:GetService("TweenService")
    local HttpService = game:GetService("HttpService")
    local UserInputService = game:GetService("UserInputService")
    local RunService = game:GetService("RunService")
    local Workspace = game:GetService("Workspace")

    local player = Players.LocalPlayer
    local plr = player

    -- ==================== PULL VECTOR VARIABLES ====================
    local pullVectorEnabled = false
    local smoothPullEnabled = false
    local isPullingBall = false
    local isSmoothPulling = false
    local cframeSpeedEnabled = false
    local isCFrameMoving = false
    local hitboxEnabled = false

    local offsetDistance = 18
    local magnetSmoothness = 0.1
    local updateInterval = 0.1
    local maxPullDistance = 150
    local cframeSpeed = 1.5
    local hitboxSize = 10
    local playerHitboxSize = 5
    local playerHitboxTransparency = 0.7
    local playerHitboxEnabled = false
    local playerHitboxConnection = nil
    -- ==================== PLAYER VARIABLES ====================
    local flyEnabled = false
    local isFlying = false
    local teleportForwardEnabled = false
    local jumpPowerEnabled = false
    local autoKickEnabled = false
    local isAutoKicking = false
	local staminaDepletionEnabled = false
	local staminaDepletionRate = 0
	local OldStam = 100

    local flySpeed = 50
    local customJumpPower = 50
    local kickPower = 0.95
    local kickAccuracy = 0.08

    local flyBodyVelocity = nil
    local flyBodyGyro = nil
    local jumpConnection = nil

    local hitboxParts = {}
    local visualParts = {}
    local originalSizes = {}
    -- ==================== CHARACTER SETUP ====================
    local character = plr.Character or plr.CharacterAdded:Wait()
    local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
    local humanoid = character:WaitForChild("Humanoid")

    plr.CharacterAdded:Connect(function(char)
        character = char
        humanoidRootPart = char:WaitForChild("HumanoidRootPart")
        humanoid = char:WaitForChild("Humanoid")
    end)

    -- ==================== GET FOOTBALL FUNCTION ====================
    local function getFootball()
        for _, player in ipairs(Players:GetPlayers()) do
            if player.Character then
                local charBall = player.Character:FindFirstChild("Football")
                if charBall then
                    return nil
                end
                
                local gameObjects = Workspace:FindFirstChild(player.Name)
                if gameObjects then
                    local gameObjectsFolder = gameObjects:FindFirstChild("GAMEOBJECTS")
                    if gameObjectsFolder then
                        local ball = gameObjectsFolder:FindFirstChild("Football")
                        if ball then
                            return nil
                        end
                    end
                end
            end
        end
        
        local football = Workspace:FindFirstChild("Football")
        if football and football:IsA("BasePart") then
            return football
        end
        
        for _, obj in ipairs(Workspace:GetDescendants()) do
            if obj.Name == "Football" and obj:IsA("BasePart") then
                local isInPlayer = false
                for _, player in ipairs(Players:GetPlayers()) do
                    if player.Character and obj:IsDescendantOf(player.Character) then
                        isInPlayer = true
                        break
                    end
                end
                if not isInPlayer then
                    return obj
                end
            end
        end
        
        return nils
    end

    -- ==================== TELEPORT TO BALL ====================
    local function teleportToBall()
        local ball = getFootball()
        if ball and humanoidRootPart then
            local ballPosition = ball.Position
            local direction = ball.CFrame.LookVector
            local targetPosition = ballPosition + (direction * offsetDistance) - Vector3.new(0, 1.5, 0) + Vector3.new(0, 5.197499752044678 / 6, 0)
            local lookDirection = (ballPosition - humanoidRootPart.Position).Unit
            humanoidRootPart.CFrame = CFrame.new(targetPosition, targetPosition + lookDirection)
        end
    end

    -- ==================== AUTOKICK FUNCTION ====================
    local function performAutoKick()
        if isAutoKicking then return end
        isAutoKicking = true
        
        spawn(function()
            local args = {kickAccuracy, kickPower}
            local success, err = pcall(function()
                game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit")
                    :WaitForChild("Services"):WaitForChild("ControlService"):WaitForChild("RE")
                    :WaitForChild("KickValues"):FireServer(unpack(args))
            end)
            
            if not success then
                warn("Failed to fire KickValues:", err)
                isAutoKicking = false
                return
            end
            
            local kickSuccess, kickErr = pcall(function()
                game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("Knit")
                    :WaitForChild("Services"):WaitForChild("ControlService"):WaitForChild("RE")
                    :WaitForChild("Kick"):FireServer()
            end)
            
            if not kickSuccess then
                warn("Failed to fire Kick:", kickErr)
            end
            
            wait(0.3)
            isAutoKicking = false
        end)
    end

    local function startCFrameSpeed()
        if isCFrameMoving then return end
        isCFrameMoving = true
        
        spawn(function()
            while cframeSpeedEnabled and isCFrameMoving do
                if humanoidRootPart and character then
                    local moveDirection = humanoid.MoveDirection
                    
                    if moveDirection.Magnitude > 0 then
                        humanoidRootPart.CFrame = humanoidRootPart.CFrame + (moveDirection * cframeSpeed)
                    end
                end
                
                wait()
            end
            isCFrameMoving = false
        end)
    end

    local function stopCFrameSpeed()
        isCFrameMoving = false
    end

    -- ==================== SMOOTH PULL ====================
    local function smoothTeleportToBall()
        local ball = getFootball()
        if ball and humanoidRootPart then
            local ballVelocity = ball.Velocity
            local ballSpeed = ballVelocity.Magnitude
            local offset = (ballSpeed > 0) and (ballVelocity.Unit * offsetDistance) or Vector3.new(0, 0, 0)
            local targetPosition = ball.Position + offset + Vector3.new(0, 3, 0)
            local lookDirection = (ball.Position - humanoidRootPart.Position).Unit
            humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(CFrame.new(targetPosition, targetPosition + lookDirection), magnetSmoothness)
        end
    end

    -- ==================== TELEPORT FORWARD FUNCTION ====================
    local function teleportForward()
        if character and humanoidRootPart then
            humanoidRootPart.CFrame = humanoidRootPart.CFrame + (humanoidRootPart.CFrame.LookVector * 3)
        end
    end

    local function expandHitbox(targetPlayer)
        if targetPlayer == player then return end
        
        local character = targetPlayer.Character
        if not character then return end
        
        local hrp = character:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        
        if not originalSizes[targetPlayer.UserId] then
            originalSizes[targetPlayer.UserId] = hrp.Size
        end
        
        hrp.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize)
        hrp.Transparency = hitboxTransparency
        hrp.CanCollide = false
    end

    local function restoreHitbox(targetPlayer)
        local character = targetPlayer.Character
        if not character then return end
        
        local hrp = character:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        
        if originalSizes[targetPlayer.UserId] then
            hrp.Size = originalSizes[targetPlayer.UserId]
        else
            hrp.Size = Vector3.new(2, 2, 1)
        end
        
        hrp.Transparency = 1
    end

    local function updateAllHitboxes()
        for _, targetPlayer in ipairs(Players:GetPlayers()) do
            if targetPlayer ~= player and targetPlayer.Character then
                expandHitbox(targetPlayer)
            end
        end
    end

    local function enableHitboxes()
        for _, targetPlayer in ipairs(Players:GetPlayers()) do
            if targetPlayer ~= player and targetPlayer.Character then
                expandHitbox(targetPlayer)
            end
        end
        
        spawn(function()
            while hitboxEnabled do
                for _, targetPlayer in ipairs(Players:GetPlayers()) do
                    if targetPlayer ~= player and targetPlayer.Character then
                        local hrp = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
                        if hrp then
                            hrp.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize)
                            hrp.Transparency = hitboxTransparency
                            hrp.CanCollide = false
                        end
                    end
                end
                wait(0.1)
            end
        end)
    end

    local function disableHitboxes()
        for _, targetPlayer in ipairs(Players:GetPlayers()) do
            if targetPlayer ~= player then
                restoreHitbox(targetPlayer)
            end
        end
        originalSizes = {}
    end

    -- ==================== INPUT HANDLING ====================
    UserInputService.InputBegan:Connect(function(input, gameProcessed)
        if gameProcessed then return end
        if input.UserInputType == Enum.UserInputType.MouseButton1 or
            (input.UserInputType == Enum.UserInputType.Gamepad1 and input.KeyCode == Enum.KeyCode.ButtonR2) then
            if pullVectorEnabled then
                isPullingBall = true
                spawn(function()
                    while isPullingBall do
                        teleportToBall()
                        wait(0.05)
                    end
                end)
            end
            if smoothPullEnabled then
                isSmoothPulling = true
                spawn(function()
                    while isSmoothPulling do
                        smoothTeleportToBall()
                        wait(updateInterval)
                    end
                end)
            end
        elseif input.UserInputType == Enum.UserInputType.Keyboard then
            if teleportForwardEnabled and input.KeyCode == Enum.KeyCode.Z then
                teleportForward()
            elseif autoKickEnabled and input.KeyCode == Enum.KeyCode.L then
                performAutoKick()
            end
        end
    end)

    UserInputService.InputEnded:Connect(function(input, gameProcessed)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or
            (input.UserInputType == Enum.UserInputType.Gamepad1 and input.KeyCode == Enum.KeyCode.ButtonR2) then
            isPullingBall = false
            isSmoothPulling = false
        end
    end)

    -- ==================== FLUENT UI SETUP ====================
    local Library = loadstring(game:HttpGetAsync("https://github.com/ActualMasterOogway/Fluent-Renewed/releases/latest/download/Fluent.luau"))()
    local SaveManager = loadstring(game:HttpGetAsync("https://raw.githubusercontent.com/ActualMasterOogway/Fluent-Renewed/master/Addons/SaveManager.luau"))()
    local InterfaceManager = loadstring(game:HttpGetAsync("https://raw.githubusercontent.com/ActualMasterOogway/Fluent-Renewed/master/Addons/InterfaceManager.luau"))()

    local Window = Library:CreateWindow{
        Title = "Kali Hub | Football Legends",
        SubTitle = "by @wrl11",
        TabWidth = 160,
        Size = UDim2.fromOffset(830, 525),
        Resize = true,
        MinSize = Vector2.new(470, 380),
        Acrylic = true,
        Theme = "Dark",
        MinimizeKey = Enum.KeyCode.LeftControl
    }

    local Tabs = {
        Main = Window:CreateTab{
            Title = "Main",
            Icon = "phosphor-football-bold"
        },
        Player = Window:CreateTab{
            Title = "Player",
            Icon = "user"
        },
        Settings = Window:CreateTab{
            Title = "Settings",
            Icon = "settings"
        }
    }

    -- ==================== PULL VECTOR UI ====================
    local LegitPullSection = Tabs.Main:CreateSection("Legit Pull Vector")

    LegitPullSection:CreateToggle("SmoothPull", {
        Title = "Legit Pull Vector (M1)",
        Default = false,
        Callback = function(value)
            smoothPullEnabled = value
        end
    })

    LegitPullSection:CreateSlider("MagnetSmoothness", {
        Title = "Vector Smoothing",
        Description = "Lower = smoother, Higher = faster",
        Default = 0.05,
        Min = 0.01,
        Max = 1.0,
        Rounding = 2,
        Callback = function(value)
            magnetSmoothness = value
        end
    })

    local PullVectorSection = Tabs.Main:CreateSection("Pull Vector")

    PullVectorSection:CreateToggle("PullVector", {
        Title = "Pull Vector (M1)",
        Default = false,
        Callback = function(value)
            pullVectorEnabled = value
        end
    })

    PullVectorSection:CreateSlider("OffsetDistance", {
        Title = "Offset Distance",
        Description = "Distance in front of the ball (5-15 recommended)",
        Default = 9,
        Min = 5,
        Max = 30,
        Rounding = 0,
        Callback = function(value)
            offsetDistance = value
        end
    })

    PullVectorSection:CreateSlider("MaxPullDistance", {
        Title = "Max Pull Distance",
        Description = "Maximum distance to pull from",
        Default = 150,
        Min = 1,
        Max = 300,
        Rounding = 0,
        Callback = function(value)
            maxPullDistance = value
        end
    })

    -- ==================== PLAYER TAB ====================
    local CFrameSpeedSection = Tabs.Player:CreateSection("CFrame Speed")

    CFrameSpeedSection:CreateToggle("CFrameSpeed", {
        Title = "CFrame Speed",
        Description = "Move using CFrame instead of WalkSpeed",
        Default = false,
        Callback = function(value)
            cframeSpeedEnabled = value
            if value then
                startCFrameSpeed()
            else
                stopCFrameSpeed()
            end
        end
    })

    CFrameSpeedSection:CreateSlider("CFrameSpeedValue", {
        Title = "CFrame Speed",
        Description = "Speed multiplier for CFrame movement",
        Default = 1.5,
        Min = 0.5,
        Max = 5,
        Rounding = 1,
        Callback = function(value)
            cframeSpeed = value
        end
    })

    local JumpPowerSection = Tabs.Player:CreateSection("JumpPower")

    JumpPowerSection:CreateToggle("JumpPowerToggle", {
        Title = "JumpPower",
        Description = "Increases your jump height",
        Default = false,
        Callback = function(value)
            jumpPowerEnabled = value
            if value then
                if jumpConnection then jumpConnection:Disconnect() end
                jumpConnection = humanoid.Jumping:Connect(function()
                    if jumpPowerEnabled and humanoidRootPart then
                        local jumpVelocity = Vector3.new(0, customJumpPower, 0)
                        humanoidRootPart.Velocity = Vector3.new(humanoidRootPart.Velocity.X, 0, humanoidRootPart.Velocity.Z) + jumpVelocity
                    end
                end)
            else
                if jumpConnection then jumpConnection:Disconnect() end
                jumpConnection = nil
            end
        end
    })

    JumpPowerSection:CreateSlider("JumpPowerValue", {
        Title = "Custom JumpPower",
        Default = 50,
        Min = 10,
        Max = 200,
        Rounding = 0,
        Callback = function(value)
            customJumpPower = value
        end
    })

    local FlySection = Tabs.Player:CreateSection("Fly")

    FlySection:CreateToggle("FlyToggle", {
        Title = "Fly",
        Description = "Allows your character to fly",
        Default = false,
        Callback = function(value)
            flyEnabled = value
            if value then
                if not flyBodyVelocity then
                    flyBodyVelocity = Instance.new("BodyVelocity")
                    flyBodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000)
                    flyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
                    flyBodyVelocity.Parent = humanoidRootPart
                    flyBodyGyro = Instance.new("BodyGyro")
                    flyBodyGyro.MaxTorque = Vector3.new(100000, 100000, 100000)
                    flyBodyGyro.P = 1000
                    flyBodyGyro.D = 100
                    flyBodyGyro.Parent = humanoidRootPart
                    isFlying = true
                    spawn(function()
                        while isFlying do
                            local camera = Workspace.CurrentCamera
                            local moveDirection = Vector3.new(0, 0, 0)
                            if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + camera.CFrame.LookVector end
                            if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - camera.CFrame.LookVector end
                            if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - camera.CFrame.RightVector end
                            if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + camera.CFrame.RightVector end
                            if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection = moveDirection + Vector3.new(0, 1, 0) end
                            if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDirection = moveDirection - Vector3.new(0, 1, 0) end
                            if moveDirection.Magnitude > 0 then
                                flyBodyVelocity.Velocity = moveDirection.Unit * flySpeed
                            else
                                flyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
                            end
                            wait()
                        end
                    end)
                end
            else
                if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end
                if flyBodyGyro then flyBodyGyro:Destroy() flyBodyGyro = nil end
                isFlying = false
            end
        end
    })

    FlySection:CreateSlider("FlySpeed", {
        Title = "Fly Speed",
        Default = 50,
        Min = 10,
        Max = 200,
        Rounding = 0,
        Callback = function(value)
            flySpeed = value
        end
    })

    local TeleportSection = Tabs.Player:CreateSection("Teleport")

    TeleportSection:CreateToggle("TeleportForward", {
        Title = "Teleport Forward (Z)",
        Description = "Teleports you forward 3 studs",
        Default = false,
        Callback = function(value)
            teleportForwardEnabled = value
        end
    })

    local AutoKickSection = Tabs.Player:CreateSection("Auto Kick")

    AutoKickSection:CreateToggle("AutoKick", {
        Title = "Auto Kick (L)",
        Description = "Automatically kicks the ball when pressed",
        Default = false,
        Callback = function(value)
            autoKickEnabled = value
        end
    })

    AutoKickSection:CreateSlider("KickPower", {
        Title = "Kick Power",
        Description = "Power of the kick (Recommended 0.95)",
        Default = 0.95,
        Min = 0,
        Max = 1,
        Rounding = 2,
        Callback = function(value)
            kickPower = value
        end
    })

    AutoKickSection:CreateSlider("KickAccuracy", {
        Title = "Kick Accuracy",
        Description = "Accuracy of the kick (Recommended 0.1)",
        Default = 0.1,
        Min = 0,
        Max = 1,
        Rounding = 2,
        Callback = function(value)
            kickAccuracy = value
        end
    })

    -- ==================== FINALIZE UI ====================
    SaveManager:SetLibrary(Library)
    InterfaceManager:SetLibrary(Library)
    SaveManager:IgnoreThemeSettings()
    SaveManager:SetIgnoreIndexes{}
    InterfaceManager:SetFolder("kalihub")
    SaveManager:SetFolder("kalihub/football-legends")
    InterfaceManager:BuildInterfaceSection(Tabs.Settings)
    SaveManager:BuildConfigSection(Tabs.Settings)

    Window:SelectTab(1)

    Library:Notify{
        Title = "Kali Hub",
        Content = "Football Legends loaded!",
        Duration = 5
    }

    SaveManager:LoadAutoloadConfig()

    print("✅ Football Legends - Kali Hub by @wrl11 and @aylonthegiant")
end

Features & Information

Kali Hub Is Now Leaked -Aylon

Community Comments (2)

jdotjdotDec 15, 2025

Whats the best pull sets?

gatoryouwantsumgatoryouwantsumApr 4, 2026

how do i use the scripts

More Scripts for [UPD]🏈Football Legends🏈