local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
 
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")
 
local plr = Players.LocalPlayer
local character = plr.Character or plr.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
local head = character:WaitForChild("Head")
local defaultHeadSize = head.Size
local defaultHeadTransparency = head.Transparency
 
-- State
local pullVectorEnabled = false
local smoothPullEnabled = false
local isPullingBall = false
local isSmoothPulling = false
local walkSpeedEnabled = false
local jumpPowerEnabled = false
local bigheadEnabled = false
local tackleReachEnabled = false
local playerHitboxEnabled = false
local jumpBoostEnabled = false
local jumpBoostTradeMode = false
local diveBoostEnabled = false
local autoFollowEnabled = false
local CanBoost = true
 
local offsetDistance = 15
local magnetSmoothness = 0.20
local customWalkSpeed = 25
local customJumpPower = 50
local bigheadSize = 1
local bigheadTransparency = 0.5
local tackleReachDistance = 5
local playerHitboxSize = 5
local playerHitboxTransparency = 0.7
local maxPullDistance = 35
local autoFollowBlatancy = 0.5
local BOOST_FORCE_Y = 32
local BALL_DETECTION_RADIUS = 10
local BOOST_COOLDOWN = 1
local diveBoostPower = 2.2
local autoOffsetEnabled = false
 
local jumpConnection = nil
local bigheadConnection = nil
local tackleReachConnection = nil
local playerHitboxConnection = nil
local walkSpeedConnection = nil
local autoFollowConnection = nil
local diveBoostConnection = nil
local cframeSpeedConnection = nil
 
local isParkMatch = Workspace:FindFirstChild("ParkMatchMap") ~= nil
 
-- Connection Manager
local ConnectionManager = {connections = {}}
function ConnectionManager:Add(name, conn)
    if self.connections[name] then self.connections[name]:Disconnect() end
    self.connections[name] = conn
end
function ConnectionManager:Remove(name)
    if self.connections[name] then self.connections[name]:Disconnect(); self.connections[name] = nil end
end
 
-- Character refresh
plr.CharacterAdded:Connect(function(char)
    character = char
    humanoidRootPart = char:WaitForChild("HumanoidRootPart")
    humanoid = char:WaitForChild("Humanoid")
    head = char:WaitForChild("Head")
    defaultHeadSize = head.Size
    defaultHeadTransparency = head.Transparency
end)
 
-- =====================
--       HELPERS
-- =====================
 
local function getFootball()
    local parkMap = Workspace:FindFirstChild("ParkMap")
    if parkMap and parkMap:FindFirstChild("Replicated") then
        local fields = parkMap.Replicated:FindFirstChild("Fields")
        if fields then
            for _, name in ipairs({"LeftField","RightField","BLeftField","BRightField","HighField","TLeftField","TRightField"}) do
                local field = fields:FindFirstChild(name)
                if field and field:FindFirstChild("Replicated") then
                    local fb = field.Replicated:FindFirstChild("Football")
                    if fb and fb:IsA("BasePart") then return fb end
                end
            end
        end
    end
    if isParkMatch then
        local pmm = Workspace:FindFirstChild("ParkMatchMap")
        if pmm and pmm:FindFirstChild("Replicated") then
            local f = pmm.Replicated:FindFirstChild("Fields")
            if f and f:FindFirstChild("MatchField") then
                local r = f.MatchField:FindFirstChild("Replicated")
                if r then
                    local fb = r:FindFirstChild("Football")
                    if fb and fb:IsA("BasePart") then return fb end
                end
            end
        end
    end
    local gamesFolder = Workspace:FindFirstChild("Games")
    if gamesFolder then
        for _, gi in ipairs(gamesFolder:GetChildren()) do
            local rep = gi:FindFirstChild("Replicated")
            if rep then
                for _, item in ipairs(rep:GetChildren()) do
                    if item:IsA("BasePart") and item.Name == "Football" then return item end
                end
            end
        end
    end
    return nil
end
 
local function getBallCarrier()
    for _, p in ipairs(Players:GetPlayers()) do
        if p ~= plr and p.Character then
            if p.Character:FindFirstChild("Football") then return p end
        end
    end
    return nil
end
 
local function getPlayerTeam(p)
    local gui = plr:FindFirstChild("PlayerGui")
    if not gui then return nil end
    local path = gui:FindFirstChild("Menu")
    if not path then return nil end
    path = path:FindFirstChild("Basis")
    if not path then return nil end
    path = path:FindFirstChild("Window")
    if not path then return nil end
    path = path:FindFirstChild("AddFriends")
    if not path then return nil end
    path = path:FindFirstChild("Basis")
    if not path then return nil end
    path = path:FindFirstChild("Frame")
    if not path then return nil end
    local home = path:FindFirstChild("HomeTeam")
    local away = path:FindFirstChild("AwayTeam")
    if home and home:FindFirstChild("Frame") and home.Frame:FindFirstChild(p.Name) then return "Home" end
    if away and away:FindFirstChild("Frame") and away.Frame:FindFirstChild(p.Name) then return "Away" end
    return nil
end
 
local function teleportToBall()
    local ball = getFootball()
    if not ball or not humanoidRootPart then return end
    if Workspace:FindFirstChild("ParkMap") then
        if (ball.Position - humanoidRootPart.Position).Magnitude > maxPullDistance then return end
    end
    local vel = ball.Velocity
    local calcOffset = offsetDistance
    if autoOffsetEnabled then
        local mag = vel.Magnitude
        calcOffset = mag > 80 and 12 or mag > 50 and 8 or mag > 25 and 5 or 3
    end
    local dir = vel.Unit
    local target = ball.Position + (dir * calcOffset) - Vector3.new(0, 1.5, 0) + Vector3.new(0, 5.197499752044678/6, 0)
    local look = (ball.Position - humanoidRootPart.Position).Unit
    humanoidRootPart.CFrame = CFrame.new(target, target + look)
end
 
local function smoothTeleportToBall()
    local ball = getFootball()
    if not ball or not humanoidRootPart then return end
    if Workspace:FindFirstChild("ParkMap") then
        if (ball.Position - humanoidRootPart.Position).Magnitude > maxPullDistance then return end
    end
    local vel = ball.Velocity
    local speed = vel.Magnitude
    local offset = speed > 0 and (vel.Unit * offsetDistance) or Vector3.zero
    local target = ball.Position + offset + Vector3.new(0, 3, 0)
    local look = (ball.Position - humanoidRootPart.Position).Unit
    humanoidRootPart.CFrame = humanoidRootPart.CFrame:Lerp(CFrame.new(target, target + look), magnetSmoothness)
end
 
local function applyJumpBoost(root)
    local bv = Instance.new("BodyVelocity")
    bv.Velocity = Vector3.new(0, BOOST_FORCE_Y, 0)
    bv.MaxForce = Vector3.new(0, math.huge, 0)
    bv.P = 5000
    bv.Parent = root
    game:GetService("Debris"):AddItem(bv, 0.2)
end
 
local function setupJumpBoost(char)
    local root = char:WaitForChild("HumanoidRootPart")
    ConnectionManager:Add("JumpBoostTouch", root.Touched:Connect(function(hit)
        if not jumpBoostEnabled or not CanBoost then return end
        if root.Velocity.Y >= -2 then return end
        local otherChar = hit:FindFirstAncestorWhichIsA("Model")
        local otherHum = otherChar and otherChar:FindFirstChild("Humanoid")
        if otherChar and otherChar ~= char and otherHum then
            if jumpBoostTradeMode then
                CanBoost = false
                applyJumpBoost(root)
                task.delay(BOOST_COOLDOWN, function() CanBoost = true end)
            else
                local fb = getFootball()
                if fb and (fb.Position - root.Position).Magnitude <= BALL_DETECTION_RADIUS then
                    CanBoost = false
                    applyJumpBoost(root)
                    task.delay(BOOST_COOLDOWN, function() CanBoost = true end)
                end
            end
        end
    end))
end
 
local function updateDivePower()
    if not diveBoostEnabled then return end
    local gameId = plr:FindFirstChild("Replicated") and plr.Replicated:FindFirstChild("GameID")
    if not gameId then return end
    local gid = gameId.Value
    for _, folder in ipairs({ReplicatedStorage:FindFirstChild("Games"), ReplicatedStorage:FindFirstChild("MiniGames")}) do
        if folder then
            local gf = folder:FindFirstChild(gid)
            if gf then
                local gp = gf:FindFirstChild("GameParams")
                if gp then
                    local dp = gp:FindFirstChild("DivePower")
                    if dp and dp:IsA("NumberValue") then dp.Value = diveBoostPower end
                end
            end
        end
    end
end
 
-- Input (M1 for pull)
UserInputService.InputBegan:Connect(function(input, gp)
    if gp 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
            task.spawn(function()
                while isPullingBall do teleportToBall(); task.wait(0.05) end
            end)
        end
        if smoothPullEnabled then
            isSmoothPulling = true
            task.spawn(function()
                while isSmoothPulling do smoothTeleportToBall(); task.wait(0.01) end
            end)
        end
    end
end)
 
UserInputService.InputEnded:Connect(function(input)
    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)
 
-- Auto Sack
local function isWallDown()
    local games = workspace:FindFirstChild("Games")
    if not games then return false end
    for _, g in pairs(games:GetChildren()) do
        local rep = g:FindFirstChild("Replicated")
        if rep then
            local sl = rep:FindFirstChild("ScrimmageLine")
            if sl and sl:FindFirstChild("ScrimmageWall") then
                if not sl.ScrimmageWall.CanCollide then return true end
            end
        end
    end
    return false
end
 
local function getTeamID(p)
    local rep = p:FindFirstChild("Replicated")
    if not rep then return nil end
    local tid = rep:FindFirstChild("TeamID")
    return tid and tid.Value or nil
end
 
local function isEnemy(p)
    local mine = getTeamID(plr)
    local theirs = getTeamID(p)
    if not mine or not theirs then return false end
    return mine ~= theirs
end
 
RunService.Heartbeat:Connect(function()
    if not getgenv().ZeroAutoSack then return end
    if not isWallDown() then return end
    for _, p in ipairs(Players:GetPlayers()) do
        if p ~= plr and isEnemy(p) and p.Character then
            local fb = p.Character:FindFirstChild("Football")
            if fb then
                local hrp = p.Character:FindFirstChild("HumanoidRootPart")
                if hrp and humanoidRootPart then
                    humanoidRootPart.CFrame = CFrame.new(hrp.Position)
                end
            end
        end
    end
end)
 
-- Anti Block (Noclip)
RunService.Stepped:Connect(function()
    if not getgenv().ZeroAntiBlock then return end
    local char = plr.Character
    if not char then return end
    for _, p in ipairs(char:GetDescendants()) do
        if p:IsA("BasePart") then p.CanCollide = false end
    end
end)
 
-- Auto Touchdown
getgenv().ZeroAutoTouchdown = false
local lastTouchdownTime = 0
RunService.Heartbeat:Connect(function()
    if not getgenv().ZeroAutoTouchdown then return end
    if tick() - lastTouchdownTime < 2 then return end
    local char = plr.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end
    local hasBall = char:FindFirstChild("Football") ~= nil
    if hasBall then
        hrp.CFrame = CFrame.new(Vector3.new(161, 4, -2))
        task.wait(0.5)
        hrp.CFrame = CFrame.new(Vector3.new(-166, 4, 0))
        lastTouchdownTime = tick()
    end
end)
 
-- Auto Catch
getgenv().ZeroAutoCatch = {Enabled = false, Radius = 0}
RunService.Heartbeat:Connect(function()
    if not getgenv().ZeroAutoCatch.Enabled then return end
    local hrp = humanoidRootPart
    if not hrp then return end
    local closest, closestDist = nil, math.huge
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj.Name == "Football" and obj:IsA("BasePart") then
            local dist = (obj.Position - hrp.Position).Magnitude
            if dist <= getgenv().ZeroAutoCatch.Radius and dist < closestDist then
                closestDist = dist
                closest = obj
            end
        end
    end
    if closest then
        local cam = workspace.CurrentCamera
        local screenPos, onScreen = cam:WorldToViewportPoint(closest.Position)
        if onScreen then
            local VIM = game:GetService("VirtualInputManager")
            VIM:SendMouseButtonEvent(screenPos.X, screenPos.Y, 0, true, game, 0)
            task.wait(0.05)
            VIM:SendMouseButtonEvent(screenPos.X, screenPos.Y, 0, false, game, 0)
        end
    end
end)
 
-- Turkey Autofarm
getgenv().ZeroTurkeyEnabled = false
local isFarming = false
local turkeyFarmSpeed = 0.3
 
local function getMG()
    local mg = workspace:FindFirstChild("MiniGames")
    if not mg then return nil end
    for _, v in ipairs(mg:GetChildren()) do
        local r = v:FindFirstChild("Replicated")
        if r and r:FindFirstChild("Turkeys") then return r end
    end
    return nil
end
 
local function isTurkeyValid(t)
    return t and t.Parent and t:IsDescendantOf(workspace)
end
 
local function basket()
    local id = plr.Replicated and plr.Replicated:FindFirstChild("TeamID")
    if id and id.Value == "AwayTeam" then
        return Vector3.new(137, 372, 0)
    end
    return Vector3.new(-138, 372, 2)
end
 
local function tweenTo(hrp, pos, speed, turkey)
    speed = speed or 0.5
    local dist = (hrp.Position - pos).Magnitude
    local ts = math.max(speed, dist / 100)
    local tween = TweenService:Create(hrp, TweenInfo.new(ts, Enum.EasingStyle.Linear), {CFrame = CFrame.new(pos)})
    tween:Play()
    if turkey then
        local startY = hrp.Position.Y
        local conn
        conn = RunService.Heartbeat:Connect(function()
            if not isTurkeyValid(turkey) then tween:Cancel(); conn:Disconnect() return end
            if hrp.Position.Y < startY - 10 then tween:Cancel(); conn:Disconnect() end
        end)
        tween.Completed:Wait()
        conn:Disconnect()
        return isTurkeyValid(turkey)
    end
    tween.Completed:Wait()
    return true
end
 
RunService.Heartbeat:Connect(function()
    if not getgenv().ZeroTurkeyEnabled or isFarming then return end
    isFarming = true
    task.spawn(function()
        local char = plr.Character
        local hrp = char and char:FindFirstChild("HumanoidRootPart")
        if not char or not hrp then isFarming = false; return end
        local rep = getMG()
        if not rep then isFarming = false; return end
        local turkeyList = rep:FindFirstChild("Turkeys")
        if not turkeyList then isFarming = false; return end
        local turkeys = {}
        for _, t in pairs(turkeyList:GetChildren()) do
            if t:IsA("BasePart") and isTurkeyValid(t) then table.insert(turkeys, t) end
        end
        for _, turkey in ipairs(turkeys) do
            if not getgenv().ZeroTurkeyEnabled then break end
            if isTurkeyValid(turkey) then
                pcall(function()
                    local yDiff = hrp.Position.Y - turkey.Position.Y
                    if yDiff > 15 then return end
                    local ok = tweenTo(hrp, turkey.Position, turkeyFarmSpeed, turkey)
                    if ok and isTurkeyValid(turkey) then
                        firetouchinterest(hrp, turkey, 0)
                        firetouchinterest(hrp, turkey, 1)
                        task.wait(0.1)
                        tweenTo(hrp, basket(), turkeyFarmSpeed, nil)
                        task.wait(0.1)
                    end
                end)
            end
        end
        isFarming = false
    end)
end)
 
-- Desync Mags
local magnetEnabled = false
local magnetDistance = 120
local showHitbox = false
local hitboxPart = nil
local og1 = CFrame.new()
local prvnt = false
local theonern = nil
local ifsm1gotfb = false
local posCache = {}
 
local function isFootball(obj)
    return obj:IsA("MeshPart") and (obj.Name == "Football" or obj.Name == "Football MeshPart")
end
 
local function removeHitbox()
    if hitboxPart then hitboxPart:Destroy(); hitboxPart = nil end
end
 
local function createHitbox()
    removeHitbox()
    hitboxPart = Instance.new("Part")
    hitboxPart.Name = "ZeroMagnetHitbox"
    hitboxPart.Size = Vector3.new(magnetDistance*2, magnetDistance*2, magnetDistance*2)
    hitboxPart.Anchored = true
    hitboxPart.CanCollide = false
    hitboxPart.Transparency = 0.7
    hitboxPart.Material = Enum.Material.ForceField
    hitboxPart.Color = Color3.fromRGB(138, 43, 226)
    hitboxPart.Shape = Enum.PartType.Ball
    hitboxPart.Parent = workspace
end
 
local function udfr(f)
    theonern = f
    posCache[tostring(f:GetDebugId())] = f.Position
end
 
local function fbpos(f)
    local id = tostring(f:GetDebugId())
    local old = posCache[id]
    local now = f.Position
    posCache[id] = now
    return now, old or now
end
 
local function ifsm1gotit()
    if theonern and theonern.Parent then
        if theonern.Parent:IsA("Model") and Players:GetPlayerFromCharacter(theonern.Parent) then return true end
        for _, p in next, Players:GetPlayers() do
            if p.Character and theonern:IsDescendantOf(p.Character) then return true end
        end
    end
    return false
end
 
workspace.DescendantAdded:Connect(function(d)
    if isFootball(d) then
        udfr(d); ifsm1gotfb = false
        d.AncestryChanged:Connect(function()
            if d.Parent and d.Parent:IsA("Model") and Players:GetPlayerFromCharacter(d.Parent) then
                ifsm1gotfb = true
            elseif d.Parent == workspace or d.Parent == nil then
                ifsm1gotfb = false
            end
        end)
    end
end)
workspace.DescendantRemoving:Connect(function(d)
    if d == theonern then theonern = nil; ifsm1gotfb = false end
end)
for _, d in next, workspace:GetDescendants() do
    if isFootball(d) then
        udfr(d)
        if d.Parent and d.Parent:IsA("Model") and Players:GetPlayerFromCharacter(d.Parent) then ifsm1gotfb = true end
    end
end
 
local oind
pcall(function()
    oind = hookmetamethod(game, "__index", function(self, key)
        if magnetEnabled and not checkcaller() and key == "CFrame" and self == humanoidRootPart and prvnt then
            return og1
        end
        return oind(self, key)
    end)
end)
 
RunService.Heartbeat:Connect(function()
    -- Hitbox visibility
    if showHitbox and magnetEnabled and theonern and theonern.Parent then
        if not hitboxPart then createHitbox() end
        hitboxPart.CFrame = theonern.CFrame
        hitboxPart.Size = Vector3.new(magnetDistance*2, magnetDistance*2, magnetDistance*2)
    elseif hitboxPart and (not showHitbox or not magnetEnabled) then
        removeHitbox()
    end
 
    if not magnetEnabled or not theonern or not theonern.Parent then ifsm1gotfb = false; return end
    ifsm1gotfb = ifsm1gotit()
    if ifsm1gotfb then prvnt = false; return end
 
    local pos, old = fbpos(theonern)
    if (humanoidRootPart.Position - pos).Magnitude > magnetDistance then return end
 
    local vel = pos - old
    local ping = plr:GetNetworkPing() * 1000
    local pingMult = ping > 250 and 2.5 or ping > 200 and 2.0 or ping > 150 and 1.7 or ping > 100 and 1.4 or ping > 50 and 1.2 or 1.0
    local int1
 
    if vel.Magnitude > 0.1 then
        int1 = pos + (vel.Unit * 8 * pingMult)
    else
        int1 = pos + Vector3.new(5, 0, 5) * pingMult
    end
    int1 = Vector3.new(int1.X, math.max(int1.Y, pos.Y), int1.Z)
 
    og1 = humanoidRootPart.CFrame
    prvnt = true
    humanoidRootPart.CFrame = CFrame.new(int1)
    RunService.RenderStepped:Wait()
    humanoidRootPart.CFrame = og1
    prvnt = false
end)
 
plr.CharacterAdded:Connect(function(c2)
    humanoidRootPart = c2:WaitForChild("HumanoidRootPart")
    prvnt = false; posCache = {}; removeHitbox()
end)
 
-- =====================
--      RAYFIELD UI
-- =====================
 
local Window = Rayfield:CreateWindow({
    Name = "Scorpio Hub | Universe Football",
    LoadingTitle = "Scorpio Hub",
    LoadingSubtitle = "NFL Universe Edition",
    ConfigurationSaving = {
        Enabled = true,
        FolderName = "ScorpioHub",
        FileName = "NFLConfig"
    },
    KeySystem = false,
})
 
-- ======= BALL TAB =======
local BallTab = Window:CreateTab("Ball", "circle")
 
BallTab:CreateSection("Pull Vector  (Hold M1)")
 
BallTab:CreateToggle({
    Name = "Pull Vector",
    CurrentValue = false,
    Flag = "PullVector",
    Callback = function(v) pullVectorEnabled = v end
})
 
BallTab:CreateToggle({
    Name = "Auto Offset Distance",
    CurrentValue = false,
    Flag = "AutoOffset",
    Callback = function(v) autoOffsetEnabled = v end
})
 
BallTab:CreateSlider({
    Name = "Offset Distance",
    Range = {0, 30},
    Increment = 1,
    Suffix = " studs",
    CurrentValue = 15,
    Flag = "OffsetDist",
    Callback = function(v) offsetDistance = v end
})
 
BallTab:CreateSlider({
    Name = "Max Pull Distance",
    Range = {1, 150},
    Increment = 1,
    Suffix = " studs",
    CurrentValue = 35,
    Flag = "MaxPullDist",
    Callback = function(v) maxPullDistance = v end
})
 
BallTab:CreateSection("Legit Pull Vector  (Hold M1)")
 
BallTab:CreateToggle({
    Name = "Legit Pull Vector",
    CurrentValue = false,
    Flag = "LegitPull",
    Callback = function(v) smoothPullEnabled = v end
})
 
BallTab:CreateSlider({
    Name = "Vector Smoothing",
    Range = {1, 100},
    Increment = 1,
    Suffix = "x0.01",
    CurrentValue = 20,
    Flag = "Smoothness",
    Callback = function(v) magnetSmoothness = v / 100 end
})
 
BallTab:CreateSection("Desync Mags")
 
BallTab:CreateToggle({
    Name = "Desync Mags",
    CurrentValue = false,
    Flag = "DesyncMags",
    Callback = function(v)
        magnetEnabled = v
        if not v then prvnt = false; removeHitbox() end
    end
})
 
BallTab:CreateSlider({
    Name = "Magnet Distance",
    Range = {0, 120},
    Increment = 1,
    Suffix = " studs",
    CurrentValue = 120,
    Flag = "MagnetDist",
    Callback = function(v) magnetDistance = v end
})
 
BallTab:CreateToggle({
    Name = "Show Magnet Hitbox",
    CurrentValue = false,
    Flag = "ShowHitbox",
    Callback = function(v)
        showHitbox = v
        if not v then removeHitbox() end
    end
})
 
-- ======= PLAYER TAB =======
local PlayerTab = Window:CreateTab("Player", "user")
 
PlayerTab:CreateSection("Bypass")

local enabled = false
local billboard

-- Rainbow Effect
local function rainbowText(label)
    task.spawn(function()
        local hue = 0
        while label and label.Parent do
            hue = (hue + 0.01) % 1
            label.TextColor3 = Color3.fromHSV(hue, 1, 1)
            task.wait(0.03)
        end
    end)
end

-- Create NameTag
local function createTag()
    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local head = character:WaitForChild("Head")

    if billboard then
        billboard:Destroy()
    end

    billboard = Instance.new("BillboardGui")
    billboard.Name = "ScorpioHubTag"
    billboard.Size = UDim2.new(0, 200, 0, 50)
    billboard.StudsOffset = Vector3.new(0, 3, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = head

    local text = Instance.new("TextButton")
    text.Size = UDim2.new(1, 0, 1, 0)
    text.BackgroundTransparency = 1
    text.Text = "ScorpioHub"
    text.TextScaled = true
    text.Font = Enum.Font.GothamBold
    text.Parent = billboard

    rainbowText(text)

    -- Click Toggle
    text.MouseButton1Click:Connect(function()
        billboard.Enabled = not billboard.Enabled
    end)
end

PlayerTab:CreateToggle({
    Name = "Enable Rainbow NameTag",
    CurrentValue = false,
    Flag = "RainbowTag",
    Callback = function(Value)
        enabled = Value

        if enabled then
            createTag()
        else
            if billboard then
                billboard:Destroy()
                billboard = nil
            end
        end
    end,
})

-- Reapply after respawn
game.Players.LocalPlayer.CharacterAdded:Connect(function()
    task.wait(1)
    if enabled then
        createTag()
    end
end)

local Lighting = game:GetService("Lighting")

local CustomSky

PlayerTab:CreateToggle({
    Name = "Custom Sky",
    CurrentValue = false,
    Flag = "CustomSky",
    Callback = function(state)

        if state then
            -- Remove old sky if it exists
            if Lighting:FindFirstChild("ScorpioSky") then
                Lighting.ScorpioSky:Destroy()
            end

            -- Create new sky
            CustomSky = Instance.new("Sky")
            CustomSky.Name = "ScorpioSky"

            -- Put your Roblox image ID here
            local SkyID = "rbxassetid://81817688420352"

            CustomSky.SkyboxBk = SkyID
            CustomSky.SkyboxDn = SkyID
            CustomSky.SkyboxFt = SkyID
            CustomSky.SkyboxLf = SkyID
            CustomSky.SkyboxRt = SkyID
            CustomSky.SkyboxUp = SkyID

            CustomSky.Parent = Lighting

            Rayfield:Notify({
                Title = "Scorpio.Hub",
                Content = "Custom Sky Enabled",
                Duration = 4
            })

        else
            -- Remove custom sky
            if Lighting:FindFirstChild("ScorpioSky") then
                Lighting.ScorpioSky:Destroy()
            end

            Rayfield:Notify({
                Title = "Scorpio.Hub",
                Content = "Custom Sky Disabled",
                Duration = 4
            })
        end
    end
})

PlayerTab:CreateToggle({
    Name = "WalkSpeed",
    CurrentValue = false,
    Flag = "WalkSpeed",
    Callback = function(value)
        walkSpeedEnabled = value
        if walkSpeedConnection then walkSpeedConnection:Disconnect(); walkSpeedConnection = nil end
        local hum = plr.Character and plr.Character:FindFirstChildOfClass("Humanoid")
        if value and hum then
            hum.WalkSpeed = customWalkSpeed
            walkSpeedConnection = hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
                if walkSpeedEnabled then hum.WalkSpeed = customWalkSpeed end
            end)
        elseif hum then
            hum.WalkSpeed = 16
        end
    end
})
 
PlayerTab:CreateSlider({
    Name = "Speed Value",
    Range = {16, 35},
    Increment = 1,
    Suffix = " s/s",
    CurrentValue = 25,
    Flag = "SpeedVal",
    Callback = function(v)
        customWalkSpeed = v
        if walkSpeedEnabled then
            local hum = plr.Character and plr.Character:FindFirstChildOfClass("Humanoid")
            if hum then hum.WalkSpeed = v end
        end
    end
})
 
PlayerTab:CreateSection("JumpPower")
 
PlayerTab:CreateToggle({
    Name = "JumpPower",
    CurrentValue = false,
    Flag = "JumpPower",
    Callback = function(value)
        jumpPowerEnabled = value
        if jumpConnection then jumpConnection:Disconnect(); jumpConnection = nil end
        if value then
            jumpConnection = humanoid.Jumping:Connect(function()
                if jumpPowerEnabled and humanoidRootPart then
                    humanoidRootPart.Velocity = Vector3.new(humanoidRootPart.Velocity.X, 0, humanoidRootPart.Velocity.Z) + Vector3.new(0, customJumpPower, 0)
                end
            end)
        end
    end
})
 
PlayerTab:CreateSlider({
    Name = "Jump Height",
    Range = {10, 200},
    Increment = 5,
    Suffix = "",
    CurrentValue = 50,
    Flag = "JumpVal",
    Callback = function(v) customJumpPower = v end
})
 
PlayerTab:CreateSection("Jump Boost")
 
PlayerTab:CreateToggle({
    Name = "Jump Boost",
    CurrentValue = false,
    Flag = "JumpBoost",
    Callback = function(v)
        jumpBoostEnabled = v
        if v and plr.Character then setupJumpBoost(plr.Character)
        else ConnectionManager:Remove("JumpBoostTouch") end
    end
})
 
PlayerTab:CreateToggle({
    Name = "Always Boost Mode",
    CurrentValue = false,
    Flag = "BoostMode",
    Callback = function(v) jumpBoostTradeMode = v end
})
 
PlayerTab:CreateSlider({
    Name = "Boost Force",
    Range = {10, 100},
    Increment = 2,
    Suffix = "",
    CurrentValue = 32,
    Flag = "BoostForce",
    Callback = function(v) BOOST_FORCE_Y = v end
})
 
PlayerTab:CreateSection("Dive Boost")
 
PlayerTab:CreateToggle({
    Name = "Dive Boost",
    CurrentValue = false,
    Flag = "DiveBoost",
    Callback = function(v)
        diveBoostEnabled = v
        if diveBoostConnection then diveBoostConnection:Disconnect(); diveBoostConnection = nil end
        if v then diveBoostConnection = RunService.Heartbeat:Connect(updateDivePower) end
        updateDivePower()
    end
})
 
PlayerTab:CreateSlider({
    Name = "Dive Power",
    Range = {22, 100},
    Increment = 1,
    Suffix = "x0.1",
    CurrentValue = 22,
    Flag = "DivePower",
    Callback = function(v) diveBoostPower = v / 10 end
})
 
PlayerTab:CreateSection("Auto Rush")
 
PlayerTab:CreateToggle({
    Name = "Auto Follow Ball Carrier",
    CurrentValue = false,
    Flag = "AutoFollow",
    Callback = function(value)
        autoFollowEnabled = value
        if autoFollowConnection then autoFollowConnection:Disconnect(); autoFollowConnection = nil end
        if value then
            autoFollowConnection = RunService.Heartbeat:Connect(function()
                local carrier = getBallCarrier()
                if carrier and carrier.Character and humanoidRootPart and humanoid then
                    local myTeam = getPlayerTeam(plr)
                    local cTeam = getPlayerTeam(carrier)
                    if myTeam and cTeam and myTeam ~= cTeam then
                        local cRoot = carrier.Character:FindFirstChild("HumanoidRootPart")
                        if cRoot then
                            local cVel = cRoot.Velocity
                            local dist = (cRoot.Position - humanoidRootPart.Position).Magnitude
                            local t = dist / (humanoid.WalkSpeed or 16)
                            local predicted = cRoot.Position + cVel * t
                            local dir = predicted - humanoidRootPart.Position
                            humanoid:MoveTo(humanoidRootPart.Position + dir * math.clamp(autoFollowBlatancy, 0, 1))
                        end
                    end
                end
            end)
        end
    end
})
 
PlayerTab:CreateSlider({
    Name = "Follow Blatancy",
    Range = {0, 100},
    Increment = 5,
    Suffix = "%",
    CurrentValue = 50,
    Flag = "Blatancy",
    Callback = function(v) autoFollowBlatancy = v / 100 end
})
 
PlayerTab:CreateSection("Teleport")
 
PlayerTab:CreateButton({
    Name = "Teleport to Endzone 1",
    Callback = function()
        if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
            plr.Character.HumanoidRootPart.CFrame = CFrame.new(161, 4, -2)
        end
    end
})
 
PlayerTab:CreateButton({
    Name = "Teleport to Endzone 2",
    Callback = function()
        if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
            plr.Character.HumanoidRootPart.CFrame = CFrame.new(-166, 4, 0)
        end
    end
})
 
-- ======= HITBOX TAB =======
local HitboxTab = Window:CreateTab("Hitbox", "box")
 
HitboxTab:CreateSection("BigHead Collision")
 
HitboxTab:CreateToggle({
    Name = "BigHead Collision",
    CurrentValue = false,
    Flag = "Bighead",
    Callback = function(value)
        bigheadEnabled = value
        if value then
            if bigheadConnection then bigheadConnection:Disconnect() end
            bigheadConnection = RunService.RenderStepped:Connect(function()
                for _, p in pairs(Players:GetPlayers()) do
                    if p ~= plr and p.Character then
                        local h = p.Character:FindFirstChild("Head")
                        if h and h:IsA("BasePart") then
                            h.Size = Vector3.new(bigheadSize, bigheadSize, bigheadSize)
                            h.Transparency = bigheadTransparency
                            h.CanCollide = true
                            local face = h:FindFirstChild("face")
                            if face then face:Destroy() end
                        end
                    end
                end
            end)
        else
            if bigheadConnection then bigheadConnection:Disconnect(); bigheadConnection = nil end
            for _, p in pairs(Players:GetPlayers()) do
                if p ~= plr and p.Character then
                    local h = p.Character:FindFirstChild("Head")
                    if h and h:IsA("BasePart") then
                        h.Size = defaultHeadSize
                        h.Transparency = defaultHeadTransparency
                        h.CanCollide = false
                    end
                end
            end
        end
    end
})
 
HitboxTab:CreateSlider({
    Name = "Head Size",
    Range = {1, 10},
    Increment = 1,
    Suffix = "x",
    CurrentValue = 1,
    Flag = "HeadSize",
    Callback = function(v) bigheadSize = v end
})
 
HitboxTab:CreateSlider({
    Name = "Head Transparency",
    Range = {0, 100},
    Increment = 5,
    Suffix = "%",
    CurrentValue = 50,
    Flag = "HeadTransp",
    Callback = function(v) bigheadTransparency = v / 100 end
})
 
HitboxTab:CreateSection("Tackle Reach")
 
HitboxTab:CreateToggle({
    Name = "Tackle Reach",
    CurrentValue = false,
    Flag = "TackleReach",
    Callback = function(value)
        tackleReachEnabled = value
        if tackleReachConnection then tackleReachConnection:Disconnect(); tackleReachConnection = nil end
        if value then
            tackleReachConnection = RunService.Heartbeat:Connect(function()
                for _, tp in ipairs(Players:GetPlayers()) do
                    if tp ~= plr and tp.Character then
                        for _, desc in ipairs(tp.Character:GetDescendants()) do
                            if desc.Name == "FootballGrip" then
                                local gameId = plr.Replicated and plr.Replicated:FindFirstChild("GameID") and plr.Replicated.GameID.Value
                                if gameId then
                                    local gf = (Workspace:FindFirstChild("Games") and Workspace.Games:FindFirstChild(gameId))
                                           or (Workspace:FindFirstChild("MiniGames") and Workspace.MiniGames:FindFirstChild(gameId))
                                    if gf then
                                        local hbs = gf:FindFirstChild("Replicated") and gf.Replicated:FindFirstChild("Hitboxes")
                                        if hbs then
                                            local hb = hbs:FindFirstChild(tp.Name)
                                            if hb and humanoidRootPart then
                                                local dist = (hb.Position - humanoidRootPart.Position).Magnitude
                                                if dist <= tackleReachDistance then
                                                    hb.Position = humanoidRootPart.Position
                                                    task.wait(0.1)
                                                    local tpHRP = tp.Character:FindFirstChild("HumanoidRootPart")
                                                    if tpHRP then hb.Position = tpHRP.Position end
                                                end
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end)
        end
    end
})
 
HitboxTab:CreateSlider({
    Name = "Reach Distance",
    Range = {1, 10},
    Increment = 1,
    Suffix = " studs",
    CurrentValue = 5,
    Flag = "TackleDist",
    Callback = function(v) tackleReachDistance = v end
})
 
HitboxTab:CreateSection("Player Hitbox Expander")
 
HitboxTab:CreateToggle({
    Name = "Player Hitbox Expander",
    CurrentValue = false,
    Flag = "PlayerHitbox",
    Callback = function(value)
        playerHitboxEnabled = value
        if playerHitboxConnection then playerHitboxConnection:Disconnect(); playerHitboxConnection = nil end
        if value then
            playerHitboxConnection = RunService.RenderStepped:Connect(function()
                local gf = workspace:FindFirstChild("Games")
                if not gf then return end
                local cg = gf:GetChildren()[1]
                if not cg then return end
                local hbs = cg.Replicated and cg.Replicated:FindFirstChild("Hitboxes")
                if not hbs then return end
                for _, tp in ipairs(Players:GetPlayers()) do
                    if tp ~= plr then
                        local hb = hbs:FindFirstChild(tp.Name)
                        if hb and hb:IsA("BasePart") then
                            hb.Size = Vector3.new(playerHitboxSize, playerHitboxSize, playerHitboxSize)
                            hb.Transparency = playerHitboxTransparency
                            hb.CanCollide = false
                            hb.Material = Enum.Material.Neon
                            hb.Color = Color3.fromRGB(255, 0, 0)
                        end
                    end
                end
            end)
        else
            local gf = workspace:FindFirstChild("Games")
            if gf then
                local cg = gf:GetChildren()[1]
                if cg then
                    local hbs = cg.Replicated and cg.Replicated:FindFirstChild("Hitboxes")
                    if hbs then
                        for _, tp in ipairs(Players:GetPlayers()) do
                            if tp ~= plr then
                                local hb = hbs:FindFirstChild(tp.Name)
                                if hb and hb:IsA("BasePart") then
                                    hb.Size = Vector3.new(2, 2, 1)
                                    hb.Transparency = 1
                                    hb.CanCollide = false
                                    hb.Material = Enum.Material.Plastic
                                    hb.Color = Color3.fromRGB(255, 255, 255)
                                end
                            end
                        end
                    end
                end
            end
        end
    end
})
 
HitboxTab:CreateSlider({
    Name = "Hitbox Size",
    Range = {2, 50},
    Increment = 1,
    Suffix = "x",
    CurrentValue = 5,
    Flag = "HitboxSize",
    Callback = function(v) playerHitboxSize = v end
})
 
HitboxTab:CreateSlider({
    Name = "Hitbox Transparency",
    Range = {0, 100},
    Increment = 10,
    Suffix = "%",
    CurrentValue = 70,
    Flag = "HitboxTransp",
    Callback = function(v) playerHitboxTransparency = v / 100 end
})
 
-- ======= AUTOMATION TAB =======
local AutoTab = Window:CreateTab("Automation", "cpu")
 
AutoTab:CreateSection("Sacking")
 
AutoTab:CreateToggle({
    Name = "Auto Sack",
    CurrentValue = false,
    Flag = "AutoSack",
    Callback = function(v) getgenv().ZeroAutoSack = v end
})
 
AutoTab:CreateSection("Defense")
 
AutoTab:CreateToggle({
    Name = "Anti Block",
    CurrentValue = false,
    Flag = "AntiBlock",
    Callback = function(v) getgenv().ZeroAntiBlock = v end
})
 
AutoTab:CreateSection("Scoring")
 
AutoTab:CreateToggle({
    Name = "Auto Touchdown",
    CurrentValue = false,
    Flag = "AutoTD",
    Callback = function(v) getgenv().ZeroAutoTouchdown = v end
})
 
AutoTab:CreateSection("Catching")
 
AutoTab:CreateToggle({
    Name = "Auto Catch",
    CurrentValue = false,
    Flag = "AutoCatch",
    Callback = function(v) getgenv().ZeroAutoCatch.Enabled = v end
})
 
AutoTab:CreateSlider({
    Name = "Catch Radius",
    Range = {0, 35},
    Increment = 1,
    Suffix = " studs",
    CurrentValue = 0,
    Flag = "CatchRadius",
    Callback = function(v) getgenv().ZeroAutoCatch.Radius = v end
})
 
AutoTab:CreateSection("Turkey Farm (EVENT)")
 
AutoTab:CreateToggle({
    Name = "Turkey Autofarm",
    CurrentValue = false,
    Flag = "TurkeyFarm",
    Callback = function(v)
        getgenv().ZeroTurkeyEnabled = v
        Rayfield:Notify({
            Title = "Turkey Farm",
            Content = v and "Started 🦃" or "Stopped",
            Duration = 2,
        })
    end
})
 
AutoTab:CreateSlider({
    Name = "Farm Speed",
    Range = {1, 20},
    Increment = 1,
    Suffix = "x0.1s",
    CurrentValue = 3,
    Flag = "TurkeySpeed",
    Callback = function(v) turkeyFarmSpeed = v / 10 end
})
 
AutoTab:CreateSection("Anti AFK")
 
AutoTab:CreateToggle({
    Name = "Anti AFK",
    CurrentValue = false,
    Flag = "AntiAFK",
    Callback = function(v)
        if v then
            local VU = game:GetService("VirtualUser")
            Players.LocalPlayer.Idled:Connect(function()
                VU:CaptureController()
                VU:ClickButton2(Vector2.new())
            end)
        end
    end
})
 
-- ======= MISC TAB =======
local MiscTab = Window:CreateTab("Misc", "settings")
 
MiscTab:CreateSection("Graphics")
 
MiscTab:CreateToggle({
    Name = "Potato Mode (FPS Boost)",
    CurrentValue = false,
    Flag = "PotatoMode",
    Callback = function(v)
        local lighting = game:GetService("Lighting")
        if v then
            lighting.GlobalShadows = false
            lighting.FogEnd = 9e9
            lighting.Brightness = 0
            for _, e in pairs(lighting:GetChildren()) do
                if e:IsA("PostEffect") then e.Enabled = false end
            end
            settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
            for _, obj in pairs(workspace:GetDescendants()) do
                if obj:IsA("ParticleEmitter") or obj:IsA("Trail") or obj:IsA("Fire") or obj:IsA("Smoke") or obj:IsA("Sparkles") then
                    obj.Enabled = false
                end
            end
            if lighting:FindFirstChildOfClass("Sky") then lighting:FindFirstChildOfClass("Sky"):Destroy() end
            Rayfield:Notify({Title = "Scorpio Hub", Content = "Potato mode enabled 🥔", Duration = 2})
        else
            lighting.GlobalShadows = true
            lighting.Brightness = 2
            settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic
            for _, e in pairs(lighting:GetChildren()) do
                if e:IsA("PostEffect") then e.Enabled = true end
            end
            Rayfield:Notify({Title = "Scorpio Hub", Content = "Graphics restored", Duration = 2})
        end
    end
})
 
MiscTab:CreateButton({
    Name = "Remove Textures",
    Callback = function()
        for _, obj in pairs(workspace:GetDescendants()) do
            if obj:IsA("Decal") or obj:IsA("Texture") then
                obj.Transparency = 1
            elseif obj:IsA("BasePart") then
                obj.Material = Enum.Material.SmoothPlastic
            end
        end
        Rayfield:Notify({Title = "Scorpio Hub", Content = "Textures removed!", Duration = 2})
    end
})
 
MiscTab:CreateSection("Credits")
MiscTab:CreateLabel("Scorpio Hub — NFL Universe Edition")
 
Rayfield:LoadConfiguration()
 
Rayfield:Notify({
    Title = "Scorpio Hub",
    Content = "NFL Universe loaded successfully!",
    Duration = 4,
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: