Kali Hub LEAKED SOURCE now keyless
Key Required

Kali Hub LEAKED SOURCE now keyless

πŸ’˜ High School Football 🏈WaylonTheEvidentWaylonTheEvident 5.8K views 37.2K executesUpdated Dec 8, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Scriptβ€’598 lines (18943 chars)
repeat task.wait() until game:IsLoaded()

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local cloneref = cloneref or function(v) return v end
local player = Players.LocalPlayer
local Char = player.Character or player.CharacterAdded:Wait()
local Hum = cloneref(Char:WaitForChild("Humanoid")) or cloneref(Char:FindFirstChild("Humanoid"))
local Hrp = cloneref(Char:WaitForChild("HumanoidRootPart")) or cloneref(Char:FindFirstChild("HumanoidRootPart"))

getgenv().MagsActivated = getgenv().MagsActivated or false
getgenv().MagsRange = getgenv().MagsRange or 10
getgenv().ShowHitbox = getgenv().ShowHitbox or false
getgenv().SpeedEnabled = getgenv().SpeedEnabled or false
getgenv().SpeedValue = getgenv().SpeedValue or 1
getgenv().JumpPowerOn = getgenv().JumpPowerOn or false
getgenv().JumpBoost = getgenv().JumpBoost or 50
getgenv().PullEnabled = getgenv().PullEnabled or false
getgenv().PullPower = getgenv().PullPower or 10
getgenv().ClickTackleEnabled = getgenv().ClickTackleEnabled or false
getgenv().ClickTackleRange = getgenv().ClickTackleRange or 15

local hitboxes = {}
local movementLoop = nil
local pullButtonHeld = false
local clickTackleConnection = nil

local pullButtonGui = Instance.new("ScreenGui")
pullButtonGui.Name = "PullButtonGui"
pullButtonGui.ResetOnSpawn = false
pullButtonGui.Parent = player:WaitForChild("PlayerGui")

local pullContainer = Instance.new("Frame")
pullContainer.Name = "PullContainer"
pullContainer.Size = UDim2.new(0, 100, 0, 100)
pullContainer.Position = UDim2.new(0.85, 0, 0.7, 0)
pullContainer.BackgroundTransparency = 1
pullContainer.Active = true
pullContainer.Draggable = true
pullContainer.Parent = pullButtonGui

local pullButton = Instance.new("TextButton")
pullButton.Size = UDim2.new(0, 70, 0, 70)
pullButton.Position = UDim2.new(0, 15, 0, 15)
pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
pullButton.BorderSizePixel = 0
pullButton.Text = "Pull"
pullButton.TextColor3 = Color3.fromRGB(255, 255, 255)
pullButton.Font = Enum.Font.GothamBold
pullButton.TextSize = 16
pullButton.Parent = pullContainer
pullButton.Visible = false
pullButton.AutoButtonColor = false

local pullCorner = Instance.new("UICorner")
pullCorner.CornerRadius = UDim.new(1, 0)
pullCorner.Parent = pullButton

local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled

local function hitboxx(oid)
    if not oid or hitboxes[oid] or not getgenv().MagsActivated or not getgenv().ShowHitbox then return end
    local holder = oid:FindFirstAncestorOfClass("Model")
    if holder and Players:GetPlayerFromCharacter(holder) then return end
    
    local hitbox = Instance.new("Part")
    hitbox.Name = "Hitbox"
    hitbox.Size = Vector3.new(getgenv().MagsRange, getgenv().MagsRange, getgenv().MagsRange)
    hitbox.Anchored = true
    hitbox.CanCollide = false
    hitbox.Transparency = 0.2
    hitbox.Material = Enum.Material.ForceField
    hitbox.Color = Color3.fromRGB(128, 0, 128)
    hitbox.CastShadow = false
    hitbox.CFrame = oid.CFrame
    hitbox.Shape = Enum.PartType.Ball
    hitbox.Parent = oid
    
    hitboxes[oid] = {part = hitbox}
    
    local connection
    connection = RunService.Heartbeat:Connect(function()
        if not oid or not oid.Parent or not getgenv().MagsActivated or not getgenv().ShowHitbox then
            if hitbox then hitbox:Destroy() end
            if connection then connection:Disconnect() end
            hitboxes[oid] = nil
            return
        end
        
        local holder = oid:FindFirstAncestorOfClass("Model")
        if holder and Players:GetPlayerFromCharacter(holder) then
            if hitbox then hitbox:Destroy() end
            if connection then connection:Disconnect() end
            hitboxes[oid] = nil
            return
        end
        
        hitbox.CFrame = oid.CFrame
        hitbox.Size = Vector3.new(getgenv().MagsRange, getgenv().MagsRange, getgenv().MagsRange)
    end)
end

local function removeHitboxes()
    for oid, data in pairs(hitboxes) do
        if data.part then data.part:Destroy() end
    end
    hitboxes = {}
end

local function footballhitbox()
    if not getgenv().MagsActivated or not getgenv().ShowHitbox then return end
    for _, child in pairs(workspace:GetChildren()) do
        if child.Name == "Football" and child:IsA("BasePart") then
            hitboxx(child)
        end
    end
end

local function startMovementSystem()
    if not movementLoop then
        movementLoop = RunService.Heartbeat:Connect(function(dt)
            if not getgenv().SpeedEnabled then return end
            local character = player.Character
            if not character or not character:FindFirstChild("HumanoidRootPart") then return end
            local hrp = character.HumanoidRootPart
            local humanoid = character:FindFirstChild("Humanoid")
            if humanoid and humanoid.MoveDirection.Magnitude > 0 then
                local spd = getgenv().SpeedValue or 1
                local speedStudsPerSec = spd * 8
                local moveVector = humanoid.MoveDirection * speedStudsPerSec * dt
                hrp.CFrame = hrp.CFrame + moveVector
            end
        end)
    end
end

local function stopMovementSystem()
    if movementLoop then
        movementLoop:Disconnect()
        movementLoop = nil
    end
end

local function whenmoving(character)
    if not character then return end
    local humanoid = character:WaitForChild("Humanoid")
    local humanoidrootpart = character:WaitForChild("HumanoidRootPart")
    humanoid.StateChanged:Connect(function(_, newstate)
        if newstate == Enum.HumanoidStateType.Jumping and getgenv().JumpPowerOn then
            task.wait(0.05)
            local boost = getgenv().JumpBoost or 50
            humanoidrootpart.AssemblyLinearVelocity = humanoidrootpart.AssemblyLinearVelocity + Vector3.new(0, boost - 50, 0)
        end
    end)
end

local function findClosestBallCarrier(maxDistance)
    local character = player.Character
    if not character then return nil end
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then return nil end
    
    local closestDistance = maxDistance
    local closestCharacter = nil
    
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr == player then continue end
        
        local targetChar = plr.Character
        if not targetChar then continue end
        
        local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
        if not targetHrp then continue end
        
        local hasFootball = targetChar:FindFirstChild("Football") ~= nil
        
        if not hasFootball then
            for _, item in ipairs(targetChar:GetChildren()) do
                if item:IsA("Tool") and (item.Name == "Football" or item.Name:match("Football")) then
                    hasFootball = true
                    break
                end
                if item:IsA("BasePart") and item.Name == "Football" then
                    hasFootball = true
                    break
                end
            end
        end
        
        if not hasFootball then continue end
        
        local distance = (hrp.Position - targetHrp.Position).Magnitude
        if distance < closestDistance then
            closestDistance = distance
            closestCharacter = targetChar
        end
    end
    
    return closestCharacter
end

local function enableClickTackle()
    if clickTackleConnection then return end
    
    clickTackleConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
        if gameProcessed then return end
        
        local validInput = input.UserInputType == Enum.UserInputType.MouseButton1 or 
                          input.UserInputType == Enum.UserInputType.Touch
        
        if validInput then
            if isMobile and input.UserInputType == Enum.UserInputType.Touch then
                local touchPos = input.Position
                local buttonPos = pullButton.AbsolutePosition
                local buttonSize = pullButton.AbsoluteSize
                
                local isTouchingPullButton = pullButton.Visible and
                                            touchPos.X >= buttonPos.X and 
                                            touchPos.X <= buttonPos.X + buttonSize.X and
                                            touchPos.Y >= buttonPos.Y and 
                                            touchPos.Y <= buttonPos.Y + buttonSize.Y
                
                if isTouchingPullButton then
                    return
                end
            end
            
            local targetChar = findClosestBallCarrier(getgenv().ClickTackleRange)
            if targetChar and targetChar:FindFirstChild("HumanoidRootPart") then
                local character = player.Character
                if not character then return end
                local hrp = character:FindFirstChild("HumanoidRootPart")
                if not hrp then return end
                
                hrp.CFrame = targetChar.HumanoidRootPart.CFrame
            end
        end
    end)
end

local function disableClickTackle()
    if clickTackleConnection then
        clickTackleConnection:Disconnect()
        clickTackleConnection = nil
    end
end

RunService.RenderStepped:Connect(function()
    if not getgenv().MagsActivated then return end
    
    if getgenv().ShowHitbox then
        footballhitbox()
    end
    
    for _, v in next, workspace:GetChildren() do
        if v.Name == "Football" then
            v.CanCollide = false
            local character = player.Character
            if character and character:FindFirstChild("HumanoidRootPart") then
                local hrp = character.HumanoidRootPart
                local range = getgenv().MagsRange or 10
                local dist = (v.Position - hrp.Position).Magnitude
                
                if dist <= range then
                    v.CFrame = hrp.CFrame
                    firetouchinterest(hrp, v, 0)
                    firetouchinterest(hrp, v, 0)
                end
            end
        end
    end
end)

task.spawn(function()
    while task.wait(0.05) do
        if getgenv().PullEnabled and pullButtonHeld then
            local character = player.Character
            if character then
                local hrp = character:FindFirstChild("HumanoidRootPart")
                if hrp then
                    local target = workspace:FindFirstChild("Football")
                    if target and target:IsA("BasePart") then
                        local diff = target.Position - hrp.Position
                        local dist = diff.Magnitude
                        if dist > 0.1 then
                            local direction = diff.Unit
                            local power = getgenv().PullPower or 10
                            hrp.Velocity = direction * power * 5
                        end
                    end
                end
            end
        end
    end
end)

pullButton.MouseButton1Down:Connect(function()
    if getgenv().PullEnabled then
        pullButtonHeld = true
        pullButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
    end
end)

pullButton.MouseButton1Up:Connect(function()
    pullButtonHeld = false
    pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
end)

pullButton.TouchTap:Connect(function()
    if getgenv().PullEnabled then
        pullButtonHeld = not pullButtonHeld
        if pullButtonHeld then
            pullButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
        else
            pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
        end
    end
end)

UserInputService.TouchEnded:Connect(function(touch, gameProcessed)
    local touchPos = touch.Position
    local buttonPos = pullButton.AbsolutePosition
    local buttonSize = pullButton.AbsoluteSize
    
    local isOutsideButton = touchPos.X < buttonPos.X or 
                           touchPos.X > buttonPos.X + buttonSize.X or
                           touchPos.Y < buttonPos.Y or 
                           touchPos.Y > buttonPos.Y + buttonSize.Y
    
    if pullButtonHeld and isOutsideButton then
        pullButtonHeld = false
        pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        pullButtonHeld = false
        pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    end
end)

if player.Character then
    whenmoving(player.Character)
end

player.CharacterAdded:Connect(function(char)
    whenmoving(char)
end)

local repo = "https://raw.githubusercontent.com/deividcomsono/Obsidian/main/"
local Library = loadstring(game:HttpGet(repo .. "Library.lua"))()
local ThemeManager = loadstring(game:HttpGet(repo .. "addons/ThemeManager.lua"))()
local SaveManager = loadstring(game:HttpGet(repo .. "addons/SaveManager.lua"))()

local Options = Library.Options
local Toggles = Library.Toggles

local Window = Library:CreateWindow({
    Title = "Kali Hub",
    Footer = "by @wrl11 & @aylonthegiant | discord.gg/epNcR8Ce89",
    NotifySide = "Right",
    ShowCustomCursor = false,
})

local Tabs = {
    Main = Window:AddTab("Main", "disc"),
    Physics = Window:AddTab("Physics", "zap"),
    ["UI Settings"] = Window:AddTab("UI Settings", "monitor"),
}

local MagnetGroupBox = Tabs.Main:AddLeftGroupbox("Magnets", "magnet")
local PullGroupBox = Tabs.Main:AddRightGroupbox("Pull Vector", "move")
local SpeedGroupBox = Tabs.Physics:AddLeftGroupbox("CFrame Speed", "zap")
local JumpPowerGroupBox = Tabs.Physics:AddRightGroupbox("Jump Power", "arrow-up")
local TackleGroupBox = Tabs.Physics:AddLeftGroupbox("Tackle", "target")
local MenuGroup = Tabs["UI Settings"]:AddLeftGroupbox("Menu", "wrench")

MagnetGroupBox:AddToggle("MagnetToggle", {
    Text = "Enable Magnets",
    Default = false,
    Tooltip = "Toggle magnet functionality",
    Callback = function(Value)
        getgenv().MagsActivated = Value
        if not Value then
            removeHitboxes()
        end
    end
})

MagnetGroupBox:AddToggle("ShowHitbox", {
    Text = "Show Hitbox",
    Default = false,
    Tooltip = "Show visual hitbox",
    Callback = function(Value)
        getgenv().ShowHitbox = Value
        if not Value then
            removeHitboxes()
        end
    end
})

MagnetGroupBox:AddSlider("MagDistance", {
    Text = "Mag Distance",
    Default = 10,
    Min = 1,
    Max = 100,
    Rounding = 0,
    Compact = false,
    Callback = function(Value)
        getgenv().MagsRange = Value
    end
})

PullGroupBox:AddToggle("PullVectorToggle", {
    Text = "Pull Vector",
    Default = false,
    Tooltip = "Enable pull vector (shows button on screen)",
    Callback = function(Value)
        getgenv().PullEnabled = Value
        pullButton.Visible = Value
        if not Value then
            pullButtonHeld = false
            pullButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
        end
    end
})

PullGroupBox:AddSlider("PullVectorSlider", {
    Text = "Pull Power",
    Default = 10,
    Min = 1,
    Max = 25,
    Rounding = 1,
    Compact = false,
    Callback = function(Value)
        getgenv().PullPower = Value
    end
})

SpeedGroupBox:AddToggle("CFrameSpeed", {
    Text = "CFrame Speed",
    Default = false,
    Tooltip = "Enable CFrame-based movement",
    Callback = function(state)
        getgenv().SpeedEnabled = state
        if state then
            startMovementSystem()
        else
            stopMovementSystem()
        end
    end
})

SpeedGroupBox:AddSlider("SpeedValue", {
    Text = "Speed Value",
    Default = 1,
    Min = 1,
    Max = 5,
    Rounding = 1,
    Compact = false,
    Callback = function(value)
        getgenv().SpeedValue = value
    end
})

JumpPowerGroupBox:AddToggle("JumpPower", {
    Text = "Jump Power",
    Default = false,
    Tooltip = "Enable jump power boost",
    Callback = function(Value)
        getgenv().JumpPowerOn = Value
    end
})

JumpPowerGroupBox:AddSlider("JumpBoost", {
    Text = "Jump Boost",
    Default = 50,
    Min = 50,
    Max = 120,
    Rounding = 1,
    Compact = false,
    Callback = function(Value)
        getgenv().JumpBoost = Value
    end
})

TackleGroupBox:AddToggle("ClickTackleToggle", {
    Text = "Click Tackle",
    Default = false,
    Tooltip = "Click/tap to teleport to ball carrier",
    Callback = function(Value)
        getgenv().ClickTackleEnabled = Value
        if Value then
            enableClickTackle()
        else
            disableClickTackle()
        end
    end
}):AddKeyPicker("ClickTackleKey", {
    Default = "X",
    SyncToggleState = true,
    Mode = "Toggle",
    Text = "Click Tackle Key",
    Callback = function(active)
        TackleGroupBox:SetToggle("ClickTackleToggle", active)
    end,
})

TackleGroupBox:AddSlider("ClickTackleRange", {
    Text = "Tackle Range",
    Default = 15,
    Min = 1,
    Max = 30,
    Rounding = 1,
    Compact = false,
    Callback = function(Value)
        getgenv().ClickTackleRange = Value
    end
})

MenuGroup:AddToggle("KeybindMenuOpen", {
    Default = Library.KeybindFrame.Visible,
    Text = "Open Keybind Menu",
    Callback = function(value)
        Library.KeybindFrame.Visible = value
    end,
})

MenuGroup:AddToggle("ShowCustomCursor", {
    Text = "Custom Cursor",
    Default = false,
    Callback = function(Value)
        Library.ShowCustomCursor = Value
    end,
})

MenuGroup:AddDropdown("NotificationSide", {
    Values = { "Left", "Right" },
    Default = "Right",
    Text = "Notification Side",
    Callback = function(Value)
        Library:SetNotifySide(Value)
    end,
})

MenuGroup:AddDivider()
MenuGroup:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { 
    Default = "LeftControl", 
    NoUI = true, 
    Text = "Menu keybind" 
})

MenuGroup:AddButton({
    Text = "Unload",
    Func = function()
        Library:Unload()
    end
})

Library.ToggleKeybind = Options.MenuKeybind

ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({ "MenuKeybind" })
ThemeManager:SetFolder("Kali Hub")
SaveManager:SetFolder("KaliHub/Football")

SaveManager:BuildConfigSection(Tabs["UI Settings"])
ThemeManager:ApplyToTab(Tabs["UI Settings"])

Library:Notify({
    Title = "Kali Hub",
    Description = "Football loaded successfully!",
    Time = 5,
})

Library:OnUnload(function()
    getgenv().MagsActivated = false
    getgenv().ShowHitbox = false
    getgenv().SpeedEnabled = false
    getgenv().JumpPowerOn = false
    getgenv().PullEnabled = false
    getgenv().ClickTackleEnabled = false
    
    removeHitboxes()
    stopMovementSystem()
    disableClickTackle()
    
    if pullButtonGui then 
        pullButtonGui:Destroy() 
    end
    
    Library.Unloaded = true
end)

Features & Information

Kali Hub Is Now leaked -Aylon

Community Comments (0)

No comments yet for this script.

More Scripts for πŸ’˜ High School Football 🏈