Description

This is an open source script code and includes only universal functions with infinite yield. you can use fly, teleport, walkspeed etc in the game.

Features

  • + fly
  • + noclip
  • + spin
  • + speed boost

Supported Executors

Xeno Volt Potassium Wave Delta Solara Opiumware Codex MacSploit Vega X Velocity

Script

Add Xeno Scripts as a preferred source
--[[
    Shark Bite Classic Hub
    Draggable GUI with Basics, TP, Client, Help, Legal & Credits tabs
]]

-- ============================================================
-- SERVICES
-- ============================================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")

local LocalPlayer = Players.LocalPlayer

-- ============================================================
-- CLEANUP OLD GUI
-- ============================================================
if game.CoreGui:FindFirstChild("SharkBiteClassicHub") then
    game.CoreGui.SharkBiteClassicHub:Destroy()
end

-- ============================================================
-- CLIENT LIGHTING STATE
-- ============================================================
local originalLighting = {
    Brightness = Lighting.Brightness,
    Ambient = Lighting.Ambient,
    OutdoorAmbient = Lighting.OutdoorAmbient,
    ClockTime = Lighting.ClockTime,
    FogEnd = Lighting.FogEnd,
    FogStart = Lighting.FogStart,
    ColorShift_Top = Lighting.ColorShift_Top,
    ColorShift_Bottom = Lighting.ColorShift_Bottom,
}

-- ============================================================
-- MAIN GUI
-- ============================================================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SharkBiteClassicHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset = true
ScreenGui.DisplayOrder = 999
ScreenGui.Parent = game.CoreGui

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 380, 0, 430)
MainFrame.Position = UDim2.new(0.5, -190, 0.5, -215)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 10)
MainCorner.Parent = MainFrame

local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(0, 170, 255)
MainStroke.Thickness = 2
MainStroke.Parent = MainFrame

-- ============================================================
-- TITLE BAR
-- ============================================================
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 40)
TitleBar.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 10)
TitleCorner.Parent = TitleBar

local TitleBarFix = Instance.new("Frame")
TitleBarFix.Size = UDim2.new(1, 0, 0, 10)
TitleBarFix.Position = UDim2.new(0, 0, 1, -10)
TitleBarFix.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
TitleBarFix.BorderSizePixel = 0
TitleBarFix.Parent = TitleBar

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -80, 1, 0)
TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "🦈 Shark Bite Classic Hub"
TitleLabel.TextColor3 = Color3.fromRGB(0, 170, 255)
TitleLabel.TextSize = 16
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar

local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 30, 0, 30)
CloseButton.Position = UDim2.new(1, -38, 0, 5)
CloseButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "✕"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 14
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar

local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 6)
CloseCorner.Parent = CloseButton

CloseButton.MouseButton1Click:Connect(function()
    ScreenGui:Destroy()
end)

-- ============================================================
-- DRAG
-- ============================================================
local dragging, dragInput, dragStart, startPos

TitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1
        or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

TitleBar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement
        or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(
            startPos.X.Scale, startPos.X.Offset + delta.X,
            startPos.Y.Scale, startPos.Y.Offset + delta.Y
        )
    end
end)

-- ============================================================
-- TAB BAR
-- ============================================================
local TabBar = Instance.new("Frame")
TabBar.Name = "TabBar"
TabBar.Size = UDim2.new(1, -20, 0, 35)
TabBar.Position = UDim2.new(0, 10, 0, 48)
TabBar.BackgroundColor3 = Color3.fromRGB(30, 30, 36)
TabBar.BorderSizePixel = 0
TabBar.Parent = MainFrame

local TabBarCorner = Instance.new("UICorner")
TabBarCorner.CornerRadius = UDim.new(0, 8)
TabBarCorner.Parent = TabBar

-- ============================================================
-- CONTENT FRAME
-- ============================================================
local ContentFrame = Instance.new("Frame")
ContentFrame.Name = "ContentFrame"
ContentFrame.Size = UDim2.new(1, -20, 1, -95)
ContentFrame.Position = UDim2.new(0, 10, 0, 90)
ContentFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 36)
ContentFrame.BorderSizePixel = 0
ContentFrame.ClipsDescendants = true
ContentFrame.Parent = MainFrame

local ContentCorner = Instance.new("UICorner")
ContentCorner.CornerRadius = UDim.new(0, 8)
ContentCorner.Parent = ContentFrame

-- ============================================================
-- TAB SYSTEM
-- ============================================================
local tabs = {}

local function selectTab(name)
    if not tabs[name] then return end
    for tabName, data in pairs(tabs) do
        data.page.Visible = (tabName == name)
        local targetColor = (tabName == name) and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(60, 60, 70)
        local targetText = (tabName == name) and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(230, 230, 230)
        TweenService:Create(data.button, TweenInfo.new(0.15), {
            BackgroundColor3 = targetColor,
            TextColor3 = targetText,
        }):Play()
    end
end

local TAB_WIDTH = 56
local TAB_GAP = 2

local function createTab(name, order, displayName)
    local Button = Instance.new("TextButton")
    Button.Name = name .. "Tab"
    Button.Size = UDim2.new(0, TAB_WIDTH, 1, -6)
    Button.Position = UDim2.new(0, 3 + (order * (TAB_WIDTH + TAB_GAP)), 0, 3)
    Button.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
    Button.BorderSizePixel = 0
    Button.Text = displayName or name
    Button.TextColor3 = Color3.fromRGB(230, 230, 230)
    Button.TextSize = 11
    Button.Font = Enum.Font.GothamBold
    Button.ZIndex = 2
    Button.Parent = TabBar

    local Corner = Instance.new("UICorner")
    Corner.CornerRadius = UDim.new(0, 6)
    Corner.Parent = Button

    local Page = Instance.new("ScrollingFrame")
    Page.Name = name .. "Page"
    Page.Size = UDim2.new(1, 0, 1, 0)
    Page.BackgroundTransparency = 1
    Page.BorderSizePixel = 0
    Page.ScrollBarThickness = 4
    Page.ScrollBarImageColor3 = Color3.fromRGB(0, 170, 255)
    Page.CanvasSize = UDim2.new(0, 0, 0, 0)
    Page.AutomaticCanvasSize = Enum.AutomaticSize.Y
    Page.Visible = false
    Page.ZIndex = 2
    Page.Parent = ContentFrame

    local Pad = Instance.new("UIPadding")
    Pad.PaddingTop = UDim.new(0, 8)
    Pad.PaddingBottom = UDim.new(0, 8)
    Pad.PaddingLeft = UDim.new(0, 8)
    Pad.PaddingRight = UDim.new(0, 8)
    Pad.Parent = Page

    local Layout = Instance.new("UIListLayout")
    Layout.SortOrder = Enum.SortOrder.LayoutOrder
    Layout.Padding = UDim.new(0, 8)
    Layout.Parent = Page

    tabs[name] = { button = Button, page = Page }

    Button.MouseButton1Click:Connect(function()
        selectTab(name)
    end)

    return Page
end

local BasicsPage = createTab("Basics", 0)
local TPPage = createTab("TP", 1)
local ClientPage = createTab("Client", 2)
local HelpPage = createTab("Help", 3)
local LegalPage = createTab("Legal", 4)
local CreditsPage = createTab("Credits", 5)
selectTab("Basics")

-- ============================================================
-- TOGGLE CREATOR
-- ============================================================
local function createToggle(parent, labelText, callback)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 50)
    Container.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Container

    local Label = Instance.new("TextLabel")
    Label.Size = UDim2.new(1, -80, 1, 0)
    Label.Position = UDim2.new(0, 15, 0, 0)
    Label.BackgroundTransparency = 1
    Label.Text = labelText
    Label.TextColor3 = Color3.fromRGB(230, 230, 230)
    Label.TextSize = 14
    Label.Font = Enum.Font.GothamMedium
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = Container

    local SwitchBg = Instance.new("Frame")
    SwitchBg.Size = UDim2.new(0, 50, 0, 26)
    SwitchBg.Position = UDim2.new(1, -62, 0.5, -13)
    SwitchBg.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
    SwitchBg.BorderSizePixel = 0
    SwitchBg.Parent = Container

    local SC = Instance.new("UICorner")
    SC.CornerRadius = UDim.new(1, 0)
    SC.Parent = SwitchBg

    local Knob = Instance.new("Frame")
    Knob.Size = UDim2.new(0, 20, 0, 20)
    Knob.Position = UDim2.new(0, 3, 0.5, -10)
    Knob.BackgroundColor3 = Color3.fromRGB(230, 230, 230)
    Knob.BorderSizePixel = 0
    Knob.Parent = SwitchBg

    local KC = Instance.new("UICorner")
    KC.CornerRadius = UDim.new(1, 0)
    KC.Parent = Knob

    local ClickBtn = Instance.new("TextButton")
    ClickBtn.Size = UDim2.new(0, 50, 0, 26)
    ClickBtn.Position = UDim2.new(1, -62, 0.5, -13)
    ClickBtn.BackgroundTransparency = 1
    ClickBtn.Text = ""
    ClickBtn.Parent = Container

    local state = false
    local function setState(newState)
        state = newState
        if state then
            TweenService:Create(SwitchBg, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(0, 170, 255) }):Play()
            TweenService:Create(Knob, TweenInfo.new(0.2), { Position = UDim2.new(1, -23, 0.5, -10) }):Play()
        else
            TweenService:Create(SwitchBg, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(60, 60, 70) }):Play()
            TweenService:Create(Knob, TweenInfo.new(0.2), { Position = UDim2.new(0, 3, 0.5, -10) }):Play()
        end
        if callback then callback(state) end
    end

    ClickBtn.MouseButton1Click:Connect(function()
        setState(not state)
    end)
end

-- ============================================================
-- BUTTON CREATOR
-- ============================================================
local function createButton(parent, labelText, icon, clickCallback)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 50)
    Container.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Container

    local Button = Instance.new("TextButton")
    Button.Size = UDim2.new(1, -12, 1, -12)
    Button.Position = UDim2.new(0, 6, 0, 6)
    Button.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
    Button.BorderSizePixel = 0
    Button.Text = ""
    Button.AutoButtonColor = false
    Button.Parent = Container

    local BC = Instance.new("UICorner")
    BC.CornerRadius = UDim.new(0, 6)
    BC.Parent = Button

    if icon then
        local Icon = Instance.new("ImageLabel")
        Icon.Size = UDim2.new(0, 24, 0, 24)
        Icon.Position = UDim2.new(0, 8, 0.5, -12)
        Icon.BackgroundTransparency = 1
        Icon.Image = icon
        Icon.Parent = Button
    end

    local Label = Instance.new("TextLabel")
    Label.Size = UDim2.new(1, icon and -44 or -16, 1, 0)
    Label.Position = UDim2.new(0, icon and 40 or 8, 0, 0)
    Label.BackgroundTransparency = 1
    Label.Text = labelText
    Label.TextColor3 = Color3.fromRGB(255, 255, 255)
    Label.TextSize = 14
    Label.Font = Enum.Font.GothamBold
    Label.TextXAlignment = Enum.TextXAlignment.Left
    Label.Parent = Button

    Button.MouseButton1Click:Connect(function()
        TweenService:Create(Button, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(50, 200, 100) }):Play()
        task.delay(0.4, function()
            TweenService:Create(Button, TweenInfo.new(0.3), { BackgroundColor3 = Color3.fromRGB(0, 170, 255) }):Play()
        end)
        if clickCallback then clickCallback() end
    end)

    return Container
end

-- ============================================================
-- SOCIAL LINK BUTTON CREATOR
-- ============================================================
local function createSocialLink(parent, platformName, url, brandColor, iconAssetId)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 62)
    Container.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Container

    local Button = Instance.new("TextButton")
    Button.Size = UDim2.new(1, -12, 1, -12)
    Button.Position = UDim2.new(0, 6, 0, 6)
    Button.BackgroundColor3 = brandColor
    Button.BorderSizePixel = 0
    Button.Text = ""
    Button.AutoButtonColor = false
    Button.Parent = Container

    local BC = Instance.new("UICorner")
    BC.CornerRadius = UDim.new(0, 6)
    BC.Parent = Button

    if iconAssetId then
        local Icon = Instance.new("ImageLabel")
        Icon.Size = UDim2.new(0, 32, 0, 32)
        Icon.Position = UDim2.new(0, 12, 0.5, -16)
        Icon.BackgroundTransparency = 1
        Icon.Image = iconAssetId
        Icon.Parent = Button
    end

    local NameLabel = Instance.new("TextLabel")
    NameLabel.Size = UDim2.new(1, -100, 0, 22)
    NameLabel.Position = UDim2.new(0, iconAssetId and 54 or 12, 0, 10)
    NameLabel.BackgroundTransparency = 1
    NameLabel.Text = platformName
    NameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    NameLabel.TextSize = 15
    NameLabel.Font = Enum.Font.GothamBold
    NameLabel.TextXAlignment = Enum.TextXAlignment.Left
    NameLabel.Parent = Button

    local UrlLabel = Instance.new("TextLabel")
    UrlLabel.Size = UDim2.new(1, -100, 0, 16)
    UrlLabel.Position = UDim2.new(0, iconAssetId and 54 or 12, 0, 32)
    UrlLabel.BackgroundTransparency = 1
    UrlLabel.Text = url
    UrlLabel.TextColor3 = Color3.fromRGB(230, 230, 230)
    UrlLabel.TextSize = 10
    UrlLabel.Font = Enum.Font.Gotham
    UrlLabel.TextXAlignment = Enum.TextXAlignment.Left
    UrlLabel.TextTruncate = Enum.TextTruncate.AtEnd
    UrlLabel.Parent = Button

    local Arrow = Instance.new("TextLabel")
    Arrow.Size = UDim2.new(0, 20, 0, 20)
    Arrow.Position = UDim2.new(1, -30, 0.5, -10)
    Arrow.BackgroundTransparency = 1
    Arrow.Text = "↗"
    Arrow.TextColor3 = Color3.fromRGB(255, 255, 255)
    Arrow.TextSize = 16
    Arrow.Font = Enum.Font.GothamBold
    Arrow.Parent = Button

    Button.MouseButton1Click:Connect(function()
        TweenService:Create(Button, TweenInfo.new(0.15), {
            BackgroundColor3 = Color3.fromRGB(50, 200, 100)
        }):Play()
        task.delay(0.4, function()
            TweenService:Create(Button, TweenInfo.new(0.3), {
                BackgroundColor3 = brandColor
            }):Play()
        end)

        local opened = false
        pcall(function()
            if setclipboard then setclipboard(url) end
        end)
        pcall(function()
            if openbrowser then openbrowser(url); opened = true end
        end)
        if not opened then
            pcall(function()
                if openurl then openurl(url); opened = true end
            end)
        end
        if not opened then
            warn("Link copied to clipboard (if supported): " .. url)
        end
    end)

    return Container
end

-- ============================================================
-- FLY
-- ============================================================
local flyConnection, flyBodyVelocity, flyBodyGyro
local function toggleFly(enabled)
    local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    local humanoid = character:FindFirstChildOfClass("Humanoid")
    local rootPart = character:FindFirstChild("HumanoidRootPart")
    if enabled then
        if not rootPart or not humanoid then return end
        humanoid.PlatformStand = true
        flyBodyVelocity = Instance.new("BodyVelocity")
        flyBodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9)
        flyBodyVelocity.Velocity = Vector3.zero
        flyBodyVelocity.Parent = rootPart
        flyBodyGyro = Instance.new("BodyGyro")
        flyBodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
        flyBodyGyro.P = 1e4
        flyBodyGyro.CFrame = rootPart.CFrame
        flyBodyGyro.Parent = rootPart
        flyConnection = RunService.RenderStepped:Connect(function()
            if not rootPart or not rootPart.Parent then return end
            local camera = workspace.CurrentCamera
            local moveDir = Vector3.zero
            if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += camera.CFrame.LookVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= camera.CFrame.LookVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= camera.CFrame.RightVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += camera.CFrame.RightVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0, 1, 0) end
            if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then moveDir -= Vector3.new(0, 1, 0) end
            if moveDir.Magnitude > 0 then moveDir = moveDir.Unit * 60 end
            flyBodyVelocity.Velocity = moveDir
            flyBodyGyro.CFrame = camera.CFrame
        end)
    else
        if flyConnection then flyConnection:Disconnect(); flyConnection = nil end
        if flyBodyVelocity then flyBodyVelocity:Destroy(); flyBodyVelocity = nil end
        if flyBodyGyro then flyBodyGyro:Destroy(); flyBodyGyro = nil end
        if humanoid then humanoid.PlatformStand = false end
    end
end

-- ============================================================
-- NOCLIP
-- ============================================================
local noclipConnection
local function toggleNoclip(enabled)
    if noclipConnection then noclipConnection:Disconnect(); noclipConnection = nil end
    if enabled then
        noclipConnection = RunService.Stepped:Connect(function()
            local character = LocalPlayer.Character
            if character then
                for _, part in ipairs(character:GetDescendants()) do
                    if part:IsA("BasePart") and part.CanCollide then
                        part.CanCollide = false
                    end
                end
            end
        end)
    end
end

-- ============================================================
-- INFINITE JUMP
-- ============================================================
local infJumpConnection
local function toggleInfiniteJump(enabled)
    if infJumpConnection then infJumpConnection:Disconnect(); infJumpConnection = nil end
    if enabled then
        infJumpConnection = UserInputService.JumpRequest:Connect(function()
            local character = LocalPlayer.Character
            if not character then return end
            local humanoid = character:FindFirstChildOfClass("Humanoid")
            if humanoid then
                humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
            end
        end)
    end
end

-- ============================================================
-- SPEED BOOST
-- ============================================================
local SPEED_BOOST_VALUE = 80
local speedBoostConnection
local function toggleSpeedBoost(enabled)
    if speedBoostConnection then
        speedBoostConnection:Disconnect()
        speedBoostConnection = nil
    end

    local function applySpeed()
        local character = LocalPlayer.Character
        if not character then return end
        local humanoid = character:FindFirstChildOfClass("Humanoid")
        if humanoid then
            humanoid.WalkSpeed = enabled and SPEED_BOOST_VALUE or 16
        end
    end

    applySpeed()

    if enabled then
        -- Keep speed enforced in case the game resets it
        speedBoostConnection = RunService.Heartbeat:Connect(applySpeed)
    end
end

-- ============================================================
-- SPIN
-- ============================================================
local SPIN_SPEED = 100 -- degrees per frame
local spinConnection
local spinAngle = 0
local function toggleSpin(enabled)
    if spinConnection then
        spinConnection:Disconnect()
        spinConnection = nil
    end

    if enabled then
        spinConnection = RunService.RenderStepped:Connect(function(dt)
            local character = LocalPlayer.Character
            if not character then return end
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            if not rootPart then return end

            spinAngle = (spinAngle + SPIN_SPEED * dt) % 360
            local currentCFrame = rootPart.CFrame
            -- Preserve position + look direction, apply Y-axis rotation
            local look = currentCFrame.LookVector
            local flatLook = Vector3.new(look.X, 0, look.Z)
            if flatLook.Magnitude < 0.01 then
                flatLook = Vector3.new(0, 0, -1)
            end
            flatLook = flatLook.Unit
            local right = Vector3.new(-flatLook.Z, 0, flatLook.X)
            -- Rotate look around Y axis
            local rad = math.rad(spinAngle)
            local rotatedLook = (flatLook * math.cos(rad) + right * math.sin(rad))
            local newPos = currentCFrame.Position
            rootPart.CFrame = CFrame.lookAt(newPos, newPos + rotatedLook)
        end)
    end
end

-- ============================================================
-- INFINITE YIELD BUTTON
-- ============================================================
local function createInfiniteYieldButton(parent)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 60)
    Container.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Container

    local Button = Instance.new("TextButton")
    Button.Size = UDim2.new(1, -20, 1, -16)
    Button.Position = UDim2.new(0, 10, 0, 8)
    Button.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
    Button.BorderSizePixel = 0
    Button.Text = ""
    Button.AutoButtonColor = false
    Button.Parent = Container

    local BC = Instance.new("UICorner")
    BC.CornerRadius = UDim.new(0, 8)
    BC.Parent = Button

    local Logo = Instance.new("ImageLabel")
    Logo.Size = UDim2.new(0, 36, 0, 36)
    Logo.Position = UDim2.new(0, 8, 0.5, -18)
    Logo.BackgroundTransparency = 1
    Logo.Image = "rbxassetid://1204397029"
    Logo.Parent = Button

    local ButtonLabel = Instance.new("TextLabel")
    ButtonLabel.Size = UDim2.new(1, -60, 1, 0)
    ButtonLabel.Position = UDim2.new(0, 52, 0, 0)
    ButtonLabel.BackgroundTransparency = 1
    ButtonLabel.Text = "Infinite Yield"
    ButtonLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    ButtonLabel.TextSize = 15
    ButtonLabel.Font = Enum.Font.GothamBold
    ButtonLabel.TextXAlignment = Enum.TextXAlignment.Left
    ButtonLabel.Parent = Button

    Button.MouseButton1Click:Connect(function()
        TweenService:Create(Button, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(50, 200, 100) }):Play()
        task.delay(0.4, function()
            TweenService:Create(Button, TweenInfo.new(0.3), { BackgroundColor3 = Color3.fromRGB(0, 170, 255) }):Play()
        end)
        local success, err = pcall(function()
            loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
        end)
        if not success then
            warn("Infinite Yield failed to load:", err)
            TweenService:Create(Button, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(200, 50, 50) }):Play()
            task.delay(0.5, function()
                TweenService:Create(Button, TweenInfo.new(0.3), { BackgroundColor3 = Color3.fromRGB(0, 170, 255) }):Play()
            end)
        end
    end)
end

-- ============================================================
-- CREDIT ENTRY
-- ============================================================
local function createCreditEntry(parent, role, name, accentColor)
    local Container = Instance.new("Frame")
    Container.Size = UDim2.new(1, 0, 0, 60)
    Container.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Container.BorderSizePixel = 0
    Container.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Container

    local Accent = Instance.new("Frame")
    Accent.Size = UDim2.new(0, 4, 1, -20)
    Accent.Position = UDim2.new(0, 10, 0, 10)
    Accent.BackgroundColor3 = accentColor
    Accent.BorderSizePixel = 0
    Accent.Parent = Container

    local AC = Instance.new("UICorner")
    AC.CornerRadius = UDim.new(1, 0)
    AC.Parent = Accent

    local Avatar = Instance.new("ImageLabel")
    Avatar.Size = UDim2.new(0, 40, 0, 40)
    Avatar.Position = UDim2.new(0, 25, 0.5, -20)
    Avatar.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
    Avatar.BorderSizePixel = 0
    Avatar.Image = ""
    Avatar.Parent = Container

    local AVC = Instance.new("UICorner")
    AVC.CornerRadius = UDim.new(1, 0)
    AVC.Parent = Avatar

    task.spawn(function()
        local ok, id = pcall(function() return Players:GetUserIdFromNameAsync(name) end)
        if ok and id and id > 0 then
            local thumbOk, thumb = pcall(function()
                return Players:GetUserThumbnailAsync(id, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
            end)
            if thumbOk and thumb then
                Avatar.Image = thumb
            end
        end
    end)

    local RoleLabel = Instance.new("TextLabel")
    RoleLabel.Size = UDim2.new(1, -80, 0, 20)
    RoleLabel.Position = UDim2.new(0, 75, 0, 10)
    RoleLabel.BackgroundTransparency = 1
    RoleLabel.Text = role
    RoleLabel.TextColor3 = accentColor
    RoleLabel.TextSize = 11
    RoleLabel.Font = Enum.Font.GothamBold
    RoleLabel.TextXAlignment = Enum.TextXAlignment.Left
    RoleLabel.Parent = Container

    local NameLabel = Instance.new("TextLabel")
    NameLabel.Size = UDim2.new(1, -80, 0, 24)
    NameLabel.Position = UDim2.new(0, 75, 0, 28)
    NameLabel.BackgroundTransparency = 1
    NameLabel.Text = name
    NameLabel.TextColor3 = Color3.fromRGB(230, 230, 230)
    NameLabel.TextSize = 15
    NameLabel.Font = Enum.Font.GothamBold
    NameLabel.TextXAlignment = Enum.TextXAlignment.Left
    NameLabel.Parent = Container
end

-- ============================================================
-- ABOUT CARD
-- ============================================================
local function createAboutCard(parent)
    local Card = Instance.new("Frame")
    Card.Size = UDim2.new(1, 0, 0, 0)
    Card.AutomaticSize = Enum.AutomaticSize.Y
    Card.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
    Card.BorderSizePixel = 0
    Card.Parent = parent

    local C = Instance.new("UICorner")
    C.CornerRadius = UDim.new(0, 8)
    C.Parent = Card

    local Pad = Instance.new("UIPadding")
    Pad.PaddingTop = UDim.new(0, 14)
    Pad.PaddingBottom = UDim.new(0, 14)
    Pad.PaddingLeft = UDim.new(0, 16)
    Pad.PaddingRight = UDim.new(0, 16)
    Pad.Parent = Card

    local Layout = Instance.new("UIListLayout")
    Layout.SortOrder = Enum.SortOrder.LayoutOrder
    Layout.Padding = UDim.new(0, 8)
    Layout.Parent = Card

    local Title = Instance.new("TextLabel")
    Title.Size = UDim2.new(1, 0, 0, 24)
    Title.BackgroundTransparency = 1
    Title.Text = "ABOUT THIS HUB"
    Title.TextColor3 = Color3.fromRGB(0, 170, 255)
    Title.TextSize = 13
    Title.Font = Enum.Font.GothamBold
    Title.TextXAlignment = Enum.TextXAlignment.Left
    Title.LayoutOrder = 1
    Title.Parent = Card

    local Desc = Instance.new("TextLabel")
    Desc.Size = UDim2.new(1, 0, 0, 0)
    Desc.AutomaticSize = Enum.AutomaticSize.Y
    Desc.BackgroundTransparency = 1
    Desc.Text = "Shark Bite Classic Hub is a lightweight, open-source exploit hub built specifically for SharkBite Classic on Roblox.\n\nIt was created to give players an edge in the chaotic waters — whether you're dodging sharks, grinding coins, or just messing around with friends.\n\nThis hub uses client-side exploiting techniques to enhance your gameplay experience. Everything runs locally on your executor — the game server is never modified, and no data is sent anywhere.\n\nWhether you're a seasoned exploiter or just getting started, this hub is designed to be simple, clean, and easy to use. No bloat, no sketchy key systems, no nonsense."
    Desc.TextColor3 = Color3.fromRGB(200, 200, 210)
    Desc.TextSize = 12
    Desc.Font = Enum.Font.Gotham
    Desc.TextXAlignment = Enum.TextXAlignment.Left
    Desc.TextYAlignment = Enum.TextYAlignment.Top
    Desc.TextWrapped = true
    Desc.LayoutOrder = 2
    Desc.Parent = Card

    local Divider = Instance.new("Frame")
    Divider.Size = UDim2.new(1, 0, 0, 1)
    Divider.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
    Divider.BorderSizePixel = 0
    Divider.LayoutOrder = 3
    Divider.Parent = Card

    local NoteBox = Instance.new("Frame")
    NoteBox.Size = UDim2.new(1, 0, 0, 0)
    NoteBox.AutomaticSize = Enum.AutomaticSize.Y
    NoteBox.BackgroundColor3 = Color3.fromRGB(45, 35, 25)
    NoteBox.BorderSizePixel = 0
    NoteBox.LayoutOrder = 4
    NoteBox.Parent = Card

    local NBC = Instance.new("UICorner")
    NBC.CornerRadius = UDim.new(0, 6)
    NBC.Parent = NoteBox

    local NBPad = Instance.new("UIPadding")
    NBPad.PaddingTop = UDim.new(0, 10)
    NBPad.PaddingBottom = UDim.new(0, 10)
    NBPad.PaddingLeft = UDim.new(0, 12)
    NBPad.PaddingRight = UDim.new(0, 12)
    NBPad.Parent = NoteBox

    local NBLayout = Instance.new("UIListLayout")
    NBLayout.SortOrder = Enum.SortOrder.LayoutOrder
    NBLayout.Padding = UDim.new(0, 6)
    NBLayout.Parent = NoteBox

    local NoteTitle = Instance.new("TextLabel")
    NoteTitle.Size = UDim2.new(1, 0, 0, 18)
    NoteTitle.BackgroundTransparency = 1
    NoteTitle.Text = "⚠️ EXPLOITING DISCLAIMER"
    NoteTitle.TextColor3 = Color3.fromRGB(255, 180, 50)
    NoteTitle.TextSize = 12
    NoteTitle.Font = Enum.Font.GothamBold
    NoteTitle.TextXAlignment = Enum.TextXAlignment.Left
    NoteTitle.LayoutOrder = 1
    NoteTitle.Parent = NoteBox

    local NoteText = Instance.new("TextLabel")
    NoteText.Size = UDim2.new(1, 0, 0, 0)
    NoteText.AutomaticSize = Enum.AutomaticSize.Y
    NoteText.BackgroundTransparency = 1
    NoteText.Text = "Exploiting is against Roblox's Terms of Service. Using this hub may result in your account being flagged or banned. Use at your own risk — the developer (nexongg) is not responsible for any consequences. This hub is for educational and entertainment purposes only."
    NoteText.TextColor3 = Color3.fromRGB(230, 200, 150)
    NoteText.TextSize = 11
    NoteText.Font = Enum.Font.Gotham
    NoteText.TextXAlignment = Enum.TextXAlignment.Left
    NoteText.TextYAlignment = Enum.TextYAlignment.Top
    NoteText.TextWrapped = true
    NoteText.LayoutOrder = 2
    NoteText.Parent = NoteBox

    local FeaturesTitle = Instance.new("TextLabel")
    FeaturesTitle.Size = UDim2.new(1, 0, 0, 20)
    FeaturesTitle.BackgroundTransparency = 1
    FeaturesTitle.Text = "FEATURES"
    FeaturesTitle.TextColor3 = Color3.fromRGB(0, 170, 255)
    FeaturesTitle.TextSize = 13
    FeaturesTitle.Font = Enum.Font.GothamBold
    FeaturesTitle.TextXAlignment = Enum.TextXAlignment.Left
    FeaturesTitle.LayoutOrder = 5
    FeaturesTitle.Parent = Card

    local features = {
        "Fly — WASD + Space/Ctrl to soar through the map",
        "Noclip — Phase through walls, boats, and terrain",
        "Infinite Jump — Jump endlessly without touching the ground",
        "Speed Boost — Boost your walkspeed for fast travel",
        "Spin — Spin your character rapidly for fun",
        "Infinite Yield — Load the full IY admin script with one click",
        "TP to Shark — Instantly teleport to the shark's location",
        "TP to Nearest Boat — Jump to the closest boat",
        "TP to Nearest Player — Teleport to the closest player",
        "Full Bright — Illuminate dark areas",
        "Night Time — Force the sky to night",
        "No Fog — Remove distance fog",
        "Dark Mode — Dim the scene for a moody look",
    }

    for i, feat in ipairs(features) do
        local FeatLabel = Instance.new("TextLabel")
        FeatLabel.Size = UDim2.new(1, 0, 0, 18)
        FeatLabel.BackgroundTransparency = 1
        FeatLabel.Text = "•  " .. feat
        FeatLabel.TextColor3 = Color3.fromRGB(200, 200, 210)
        FeatLabel.TextSize = 11
        FeatLabel.Font = Enum.Font.Gotham
        FeatLabel.TextXAlignment = Enum.TextXAlignment.Left
        FeatLabel.LayoutOrder = 6 + i
        FeatLabel.Parent = Card
    end

    return Card
end

-- ============================================================
-- TELEPORT HELPERS
-- ============================================================
local function getRootPart()
    local character = LocalPlayer.Character
    if not character then return nil end
    return character:FindFirstChild("HumanoidRootPart")
end

local function safeTeleport(targetPart)
    local root = getRootPart()
    if not root or not targetPart then return false end
    if not targetPart:IsDescendantOf(workspace) then return false end
    pcall(function()
        root.CFrame = targetPart.CFrame + Vector3.new(0, 5, 0)
    end)
    return true
end

local function findShark()
    local sharksFolder = workspace:FindFirstChild("Sharks")
    if sharksFolder then
        for _, obj in ipairs(sharksFolder:GetChildren()) do
            local primary = obj.PrimaryPart
                or obj:FindFirstChild("HumanoidRootPart")
                or obj:FindFirstChildWhichIsA("BasePart", true)
            if primary then return primary end
        end
    end

    for _, obj in ipairs(workspace:GetDescendants()) do
        if obj:IsA("Model") then
            local n = obj.Name:lower()
            if n:find("shark") and not n:find("bite") and not n:find("tooth") then
                local primary = obj.PrimaryPart
                    or obj:FindFirstChild("HumanoidRootPart")
                    or obj:FindFirstChildWhichIsA("BasePart", true)
                if primary then return primary end
            end
        end
    end
    return nil
end

local function findNearestBoat()
    local root = getRootPart()
    if not root then return nil end
    local myPos = root.Position

    local best, bestDist = nil, math.huge

    for _, obj in ipairs(workspace:GetDescendants()) do
        if obj:IsA("Model") then
            local hasSeat = obj:FindFirstChildWhichIsA("VehicleSeat", true)
                or obj:FindFirstChildWhichIsA("Seat", true)
            if hasSeat then
                local primary = obj.PrimaryPart
                    or obj:FindFirstChild("HumanoidRootPart")
                    or obj:FindFirstChildWhichIsA("BasePart", true)
                if primary then
                    local d = (primary.Position - myPos).Magnitude
                    if d < bestDist then
                        best, bestDist = primary, d
                    end
                end
            end
        end
    end

    if not best then
        for _, obj in ipairs(workspace:GetDescendants()) do
            if obj:IsA("Model") then
                local n = obj.Name:lower()
                if n:find("boat") or n:find("ship") or n:find("raft") or n:find("yacht") then
                    local primary = obj.PrimaryPart
                        or obj:FindFirstChild("HumanoidRootPart")
                        or obj:FindFirstChildWhichIsA("BasePart", true)
                    if primary then
                        local d = (primary.Position - myPos).Magnitude
                        if d < bestDist then
                            best, bestDist = primary, d
                        end
                    end
                end
            end
        end
    end

    return best
end

local function findNearestPlayer()
    local root = getRootPart()
    if not root then return nil end
    local myPos = root.Position

    local best, bestDist = nil, math.huge
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            local char = plr.Character
            if char then
                local hrp = char:FindFirstChild("HumanoidRootPart")
                local hum = char:FindFirstChildOfClass("Humanoid")
                if hrp and hum and hum.Health > 0 then
                    local d = (hrp.Position - myPos).Magnitude
                    if d < bestDist then
                        best, bestDist = hrp, d
                    end
                end
            end
        end
    end

    return best
end

-- ============================================================
-- BUILD BASICS
-- ============================================================
createToggle(BasicsPage, "Fly", toggleFly)
createToggle(BasicsPage, "Noclip", toggleNoclip)
createToggle(BasicsPage, "Infinite Jump", toggleInfiniteJump)
createToggle(BasicsPage, "Speed Boost", toggleSpeedBoost)
createToggle(BasicsPage, "Spin", toggleSpin)
createInfiniteYieldButton(BasicsPage)

-- ============================================================
-- BUILD TP
-- ============================================================
local TPInfo = Instance.new("TextLabel")
TPInfo.Size = UDim2.new(1, 0, 0, 22)
TPInfo.BackgroundTransparency = 1
TPInfo.Text = "Tap a button to teleport instantly"
TPInfo.TextColor3 = Color3.fromRGB(160, 160, 170)
TPInfo.TextSize = 12
TPInfo.Font = Enum.Font.Gotham
TPInfo.TextXAlignment = Enum.TextXAlignment.Left
TPInfo.Parent = TPPage

createButton(TPPage, "Teleport to Shark", "rbxassetid://1204397029", function()
    local shark = findShark()
    if shark then
        safeTeleport(shark)
    else
        warn("No shark found — you might be in the lobby, or the shark hasn't spawned yet.")
    end
end)

createButton(TPPage, "Teleport to Nearest Boat", "rbxassetid://1204397029", function()
    local boat = findNearestBoat()
    if boat then
        safeTeleport(boat)
    else
        warn("No boat found — you might be in the lobby, or no boats have spawned yet.")
    end
end)

createButton(TPPage, "Teleport to Nearest Player", "rbxassetid://1204397029", function()
    local target = findNearestPlayer()
    if target then
        safeTeleport(target)
    else
        warn("No other player found.")
    end
end)

-- ============================================================
-- BUILD CLIENT CHANGER
-- ============================================================
local ClientInfo = Instance.new("TextLabel")
ClientInfo.Size = UDim2.new(1, 0, 0, 22)
ClientInfo.BackgroundTransparency = 1
ClientInfo.Text = "Changes are local — only you see them."
ClientInfo.TextColor3 = Color3.fromRGB(160, 160, 170)
ClientInfo.TextSize = 12
ClientInfo.Font = Enum.Font.Gotham
ClientInfo.TextXAlignment = Enum.TextXAlignment.Left
ClientInfo.Parent = ClientPage

createToggle(ClientPage, "Full Bright", function(enabled)
    if enabled then
        Lighting.Brightness = 2
        Lighting.Ambient = Color3.fromRGB(200, 200, 200)
        Lighting.OutdoorAmbient = Color3.fromRGB(200, 200, 200)
        Lighting.FogEnd = 1e9
    else
        Lighting.Brightness = originalLighting.Brightness
        Lighting.Ambient = originalLighting.Ambient
        Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
        Lighting.FogEnd = originalLighting.FogEnd
    end
end)

createToggle(ClientPage, "Night Time", function(enabled)
    if enabled then
        Lighting.ClockTime = 0
        Lighting.Brightness = 0.5
        Lighting.OutdoorAmbient = Color3.fromRGB(40, 40, 60)
    else
        Lighting.ClockTime = originalLighting.ClockTime
        Lighting.Brightness = originalLighting.Brightness
        Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
    end
end)

createToggle(ClientPage, "No Fog", function(enabled)
    if enabled then
        Lighting.FogEnd = 1e9
        Lighting.FogStart = 0
    else
        Lighting.FogEnd = originalLighting.FogEnd
        Lighting.FogStart = originalLighting.FogStart
    end
end)

createToggle(ClientPage, "Dark Mode", function(enabled)
    if enabled then
        Lighting.Brightness = 0.1
        Lighting.Ambient = Color3.fromRGB(10, 10, 10)
        Lighting.OutdoorAmbient = Color3.fromRGB(10, 10, 10)
        Lighting.ColorShift_Top = Color3.fromRGB(50, 50, 80)
        Lighting.ColorShift_Bottom = Color3.fromRGB(20, 20, 30)
    else
        Lighting.Brightness = originalLighting.Brightness
        Lighting.Ambient = originalLighting.Ambient
        Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
        Lighting.ColorShift_Top = originalLighting.ColorShift_Top
        Lighting.ColorShift_Bottom = originalLighting.ColorShift_Bottom
    end
end)

-- ============================================================
-- BUILD HELP US OUT TAB
-- ============================================================
local HelpHeader = Instance.new("Frame")
HelpHeader.Size = UDim2.new(1, 0, 0, 0)
HelpHeader.AutomaticSize = Enum.AutomaticSize.Y
HelpHeader.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
HelpHeader.BorderSizePixel = 0
HelpHeader.Parent = HelpPage

local HelpHC = Instance.new("UICorner")
HelpHC.CornerRadius = UDim.new(0, 8)
HelpHC.Parent = HelpHeader

local HelpPad = Instance.new("UIPadding")
HelpPad.PaddingTop = UDim.new(0, 14)
HelpPad.PaddingBottom = UDim.new(0, 14)
HelpPad.PaddingLeft = UDim.new(0, 16)
HelpPad.PaddingRight = UDim.new(0, 16)
HelpPad.Parent = HelpHeader

local HelpLayout = Instance.new("UIListLayout")
HelpLayout.SortOrder = Enum.SortOrder.LayoutOrder
HelpLayout.Padding = UDim.new(0, 6)
HelpLayout.Parent = HelpHeader

local HelpTitle = Instance.new("TextLabel")
HelpTitle.Size = UDim2.new(1, 0, 0, 24)
HelpTitle.BackgroundTransparency = 1
HelpTitle.Text = "💖 HELP US OUT"
HelpTitle.TextColor3 = Color3.fromRGB(255, 100, 130)
HelpTitle.TextSize = 15
HelpTitle.Font = Enum.Font.GothamBold
HelpTitle.TextXAlignment = Enum.TextXAlignment.Left
HelpTitle.LayoutOrder = 1
HelpTitle.Parent = HelpHeader

local HelpDesc = Instance.new("TextLabel")
HelpDesc.Size = UDim2.new(1, 0, 0, 0)
HelpDesc.AutomaticSize = Enum.AutomaticSize.Y
HelpDesc.BackgroundTransparency = 1
HelpDesc.Text = "If you enjoy this hub and want to support the developer, check out nexongg's socials below! Follow, subscribe, or drop a like — every bit helps keep this project alive and free for everyone."
HelpDesc.TextColor3 = Color3.fromRGB(200, 200, 210)
HelpDesc.TextSize = 12
HelpDesc.Font = Enum.Font.Gotham
HelpDesc.TextXAlignment = Enum.TextXAlignment.Left
HelpDesc.TextYAlignment = Enum.TextYAlignment.Top
HelpDesc.TextWrapped = true
HelpDesc.LayoutOrder = 2
HelpDesc.Parent = HelpHeader

createSocialLink(
    HelpPage,
    "YouTube — @nexongg-x8k",
    "https://www.youtube.com/@nexongg-x8k",
    Color3.fromRGB(220, 30, 40),
    "rbxassetid://6031075927"
)

createSocialLink(
    HelpPage,
    "Roblox Profile — nexongg",
    "https://www.roblox.com/users/11757197395/profile?friendshipSourceType=PlayerSearch",
    Color3.fromRGB(0, 170, 255),
    "rbxassetid://1204397029"
)

createSocialLink(
    HelpPage,
    "TikTok — @rapidanticheatteam",
    "https://www.tiktok.com/@rapidanticheatteam",
    Color3.fromRGB(30, 30, 40),
    "rbxassetid://6031075931"
)

local HelpFooterNote = Instance.new("Frame")
HelpFooterNote.Size = UDim2.new(1, 0, 0, 0)
HelpFooterNote.AutomaticSize = Enum.AutomaticSize.Y
HelpFooterNote.BackgroundColor3 = Color3.fromRGB(45, 35, 25)
HelpFooterNote.BorderSizePixel = 0
HelpFooterNote.Parent = HelpPage

local HFNC = Instance.new("UICorner")
HFNC.CornerRadius = UDim.new(0, 6)
HFNC.Parent = HelpFooterNote

local HFNPad = Instance.new("UIPadding")
HFNPad.PaddingTop = UDim.new(0, 10)
HFNPad.PaddingBottom = UDim.new(0, 10)
HFNPad.PaddingLeft = UDim.new(0, 12)
HFNPad.PaddingRight = UDim.new(0, 12)
HFNPad.Parent = HelpFooterNote

local HFLayout = Instance.new("UIListLayout")
HFLayout.SortOrder = Enum.SortOrder.LayoutOrder
HFLayout.Padding = UDim.new(0, 4)
HFLayout.Parent = HelpFooterNote

local HFNTitle = Instance.new("TextLabel")
HFNTitle.Size = UDim2.new(1, 0, 0, 18)
HFNTitle.BackgroundTransparency = 1
HFNTitle.Text = "ℹ️ HOW TO OPEN LINKS"
HFNTitle.TextColor3 = Color3.fromRGB(255, 180, 50)
HFNTitle.TextSize = 11
HFNTitle.Font = Enum.Font.GothamBold
HFNTitle.TextXAlignment = Enum.TextXAlignment.Left
HFNTitle.LayoutOrder = 1
HFNTitle.Parent = HelpFooterNote

local HFNText = Instance.new("TextLabel")
HFNText.Size = UDim2.new(1, 0, 0, 0)
HFNText.AutomaticSize = Enum.AutomaticSize.Y
HFNText.BackgroundTransparency = 1
HFNText.Text = "Click a card to copy the URL to your clipboard and open it in your default browser. If your executor doesn't support auto-opening, just paste the copied link into your browser manually."
HFNText.TextColor3 = Color3.fromRGB(230, 200, 150)
HFNText.TextSize = 11
HFNText.Font = Enum.Font.Gotham
HFNText.TextXAlignment = Enum.TextXAlignment.Left
HFNText.TextYAlignment = Enum.TextYAlignment.Top
HFNText.TextWrapped = true
HFNText.LayoutOrder = 2
HFNText.Parent = HelpFooterNote

-- ============================================================
-- BUILD LEGAL TAB
-- ============================================================
local LegalHeader = Instance.new("Frame")
LegalHeader.Size = UDim2.new(1, 0, 0, 0)
LegalHeader.AutomaticSize = Enum.AutomaticSize.Y
LegalHeader.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
LegalHeader.BorderSizePixel = 0
LegalHeader.Parent = LegalPage

local LegalHC = Instance.new("UICorner")
LegalHC.CornerRadius = UDim.new(0, 8)
LegalHC.Parent = LegalHeader

local LegalPad = Instance.new("UIPadding")
LegalPad.PaddingTop = UDim.new(0, 14)
LegalPad.PaddingBottom = UDim.new(0, 14)
LegalPad.PaddingLeft = UDim.new(0, 16)
LegalPad.PaddingRight = UDim.new(0, 16)
LegalPad.Parent = LegalHeader

local LegalLayout = Instance.new("UIListLayout")
LegalLayout.SortOrder = Enum.SortOrder.LayoutOrder
LegalLayout.Padding = UDim.new(0, 8)
LegalLayout.Parent = LegalHeader

local LegalTitle = Instance.new("TextLabel")
LegalTitle.Size = UDim2.new(1, 0, 0, 24)
LegalTitle.BackgroundTransparency = 1
LegalTitle.Text = "⚖️ LEGAL RULES"
LegalTitle.TextColor3 = Color3.fromRGB(255, 180, 50)
LegalTitle.TextSize = 15
LegalTitle.Font = Enum.Font.GothamBold
LegalTitle.TextXAlignment = Enum.TextXAlignment.Left
LegalTitle.LayoutOrder = 1
LegalTitle.Parent = LegalHeader

local LegalIntro = Instance.new("TextLabel")
LegalIntro.Size = UDim2.new(1, 0, 0, 0)
LegalIntro.AutomaticSize = Enum.AutomaticSize.Y
LegalIntro.BackgroundTransparency = 1
LegalIntro.Text = "Please read this section carefully before using, sharing, or reuploading this script. These rules are in place to protect the work that went into this hub and to keep the community fair."
LegalIntro.TextColor3 = Color3.fromRGB(200, 200, 210)
LegalIntro.TextSize = 12
LegalIntro.Font = Enum.Font.Gotham
LegalIntro.TextXAlignment = Enum.TextXAlignment.Left
LegalIntro.TextYAlignment = Enum.TextYAlignment.Top
LegalIntro.TextWrapped = true
LegalIntro.LayoutOrder = 2
LegalIntro.Parent = LegalHeader

local AuthBox = Instance.new("Frame")
AuthBox.Size = UDim2.new(1, 0, 0, 0)
AuthBox.AutomaticSize = Enum.AutomaticSize.Y
AuthBox.BackgroundColor3 = Color3.fromRGB(30, 45, 30)
AuthBox.BorderSizePixel = 0
AuthBox.Parent = LegalPage

local AuthC = Instance.new("UICorner")
AuthC.CornerRadius = UDim.new(0, 8)
AuthC.Parent = AuthBox

local AuthPad = Instance.new("UIPadding")
AuthPad.PaddingTop = UDim.new(0, 12)
AuthPad.PaddingBottom = UDim.new(0, 12)
AuthPad.PaddingLeft = UDim.new(0, 14)
AuthPad.PaddingRight = UDim.new(0, 14)
AuthPad.Parent = AuthBox

local AuthLayout = Instance.new("UIListLayout")
AuthLayout.SortOrder = Enum.SortOrder.LayoutOrder
AuthLayout.Padding = UDim.new(0, 6)
AuthLayout.Parent = AuthBox

local AuthTitle = Instance.new("TextLabel")
AuthTitle.Size = UDim2.new(1, 0, 0, 20)
AuthTitle.BackgroundTransparency = 1
AuthTitle.Text = "✅ AUTHORIZED SOURCES ONLY"
AuthTitle.TextColor3 = Color3.fromRGB(80, 220, 120)
AuthTitle.TextSize = 12
AuthTitle.Font = Enum.Font.GothamBold
AuthTitle.TextXAlignment = Enum.TextXAlignment.Left
AuthTitle.LayoutOrder = 1
AuthTitle.Parent = AuthBox

local AuthText = Instance.new("TextLabel")
AuthText.Size = UDim2.new(1, 0, 0, 0)
AuthText.AutomaticSize = Enum.AutomaticSize.Y
AuthText.BackgroundTransparency = 1
AuthText.Text = "This script was submitted LEGALLY and is officially distributed on ONLY the following platforms:\n\n•  xenoscripts.com\n•  robloxscripts.com\n\nThese are the ONLY legitimate locations where this hub may be downloaded. Any other site, script, file, or copy hosting this hub is UNAUTHORIZED and violates these terms."
AuthText.TextColor3 = Color3.fromRGB(180, 240, 200)
AuthText.TextSize = 11
AuthText.Font = Enum.Font.Gotham
AuthText.TextXAlignment = Enum.TextXAlignment.Left
AuthText.TextYAlignment = Enum.TextYAlignment.Top
AuthText.TextWrapped = true
AuthText.LayoutOrder = 2
AuthText.Parent = AuthBox

local WarnBox = Instance.new("Frame")
WarnBox.Size = UDim2.new(1, 0, 0, 0)
WarnBox.AutomaticSize = Enum.AutomaticSize.Y
WarnBox.BackgroundColor3 = Color3.fromRGB(50, 30, 30)
WarnBox.BorderSizePixel = 0
WarnBox.Parent = LegalPage

local WarnC = Instance.new("UICorner")
WarnC.CornerRadius = UDim.new(0, 8)
WarnC.Parent = WarnBox

local WarnPad = Instance.new("UIPadding")
WarnPad.PaddingTop = UDim.new(0, 12)
WarnPad.PaddingBottom = UDim.new(0, 12)
WarnPad.PaddingLeft = UDim.new(0, 14)
WarnPad.PaddingRight = UDim.new(0, 14)
WarnPad.Parent = WarnBox

local WarnLayout = Instance.new("UIListLayout")
WarnLayout.SortOrder = Enum.SortOrder.LayoutOrder
WarnLayout.Padding = UDim.new(0, 6)
WarnLayout.Parent = WarnBox

local WarnTitle = Instance.new("TextLabel")
WarnTitle.Size = UDim2.new(1, 0, 0, 20)
WarnTitle.BackgroundTransparency = 1
WarnTitle.Text = "🚫 NO REUPLOADS — ACTION WILL BE TAKEN"
WarnTitle.TextColor3 = Color3.fromRGB(255, 100, 100)
WarnTitle.TextSize = 12
WarnTitle.Font = Enum.Font.GothamBold
WarnTitle.TextXAlignment = Enum.TextXAlignment.Left
WarnTitle.LayoutOrder = 1
WarnTitle.Parent = WarnBox

local WarnText = Instance.new("TextLabel")
WarnText.Size = UDim2.new(1, 0, 0, 0)
WarnText.AutomaticSize = Enum.AutomaticSize.Y
WarnText.BackgroundTransparency = 1
WarnText.Text = "Reuploading, re-posting, redistributing, or claiming this script as your own — whether in whole or in part — is strictly PROHIBITED.\n\nIf you reupload this script, we WILL take action. This includes but is not limited to:\n\n•  Filing DMCA takedown requests against your upload\n•  Reporting your content to the hosting platform\n•  Contacting Roblox Trust & Safety\n•  Publicly exposing and blacklisting known reuploaders\n\nThere are no exceptions. Asking for permission does NOT grant you the right to reupload. The only way to share this hub is to link directly to the authorized sources above."
WarnText.TextColor3 = Color3.fromRGB(255, 180, 180)
WarnText.TextSize = 11
WarnText.Font = Enum.Font.Gotham
WarnText.TextXAlignment = Enum.TextXAlignment.Left
WarnText.TextYAlignment = Enum.TextYAlignment.Top
WarnText.TextWrapped = true
WarnText.LayoutOrder = 2
WarnText.Parent = WarnBox

local RulesBox = Instance.new("Frame")
RulesBox.Size = UDim2.new(1, 0, 0, 0)
RulesBox.AutomaticSize = Enum.AutomaticSize.Y
RulesBox.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
RulesBox.BorderSizePixel = 0
RulesBox.Parent = LegalPage

local RulesC = Instance.new("UICorner")
RulesC.CornerRadius = UDim.new(0, 8)
RulesC.Parent = RulesBox

local RulesPad = Instance.new("UIPadding")
RulesPad.PaddingTop = UDim.new(0, 12)
RulesPad.PaddingBottom = UDim.new(0, 12)
RulesPad.PaddingLeft = UDim.new(0, 14)
RulesPad.PaddingRight = UDim.new(0, 14)
RulesPad.Parent = RulesBox

local RulesLayout = Instance.new("UIListLayout")
RulesLayout.SortOrder = Enum.SortOrder.LayoutOrder
RulesLayout.Padding = UDim.new(0, 6)
RulesLayout.Parent = RulesBox

local RulesTitle = Instance.new("TextLabel")
RulesTitle.Size = UDim2.new(1, 0, 0, 20)
RulesTitle.BackgroundTransparency = 1
RulesTitle.Text = "📋 WHAT YOU MAY AND MAY NOT DO"
RulesTitle.TextColor3 = Color3.fromRGB(0, 170, 255)
RulesTitle.TextSize = 12
RulesTitle.Font = Enum.Font.GothamBold
RulesTitle.TextXAlignment = Enum.TextXAlignment.Left
RulesTitle.LayoutOrder = 1
RulesTitle.Parent = RulesBox

local rules = {
    {allowed = true,  text = "Use this hub for your own personal gameplay"},
    {allowed = true,  text = "Share a direct link to xenoscripts.com or robloxscripts.com"},
    {allowed = true,  text = "Give feedback, report bugs, or suggest features to nexongg"},
    {allowed = true,  text = "Make videos showing the hub in action (credit required)"},
    {allowed = false, text = "Reuploading this script to any website, pastebin, or file host"},
    {allowed = false, text = "Claiming this script as your own work"},
    {allowed = false, text = "Modifying the script and redistributing it as your own"},
    {allowed = false, text = "Selling this script or any modified version of it"},
    {allowed = false, text = "Removing, hiding, or altering these legal notices"},
}

for i, rule in ipairs(rules) do
    local RuleLabel = Instance.new("TextLabel")
    RuleLabel.Size = UDim2.new(1, 0, 0, 0)
    RuleLabel.AutomaticSize = Enum.AutomaticSize.Y
    RuleLabel.BackgroundTransparency = 1
    RuleLabel.Text = (rule.allowed and "✅  " or "❌  ") .. rule.text
    RuleLabel.TextColor3 = rule.allowed and Color3.fromRGB(180, 240, 200) or Color3.fromRGB(255, 180, 180)
    RuleLabel.TextSize = 11
    RuleLabel.Font = Enum.Font.Gotham
    RuleLabel.TextXAlignment = Enum.TextXAlignment.Left
    RuleLabel.TextYAlignment = Enum.TextYAlignment.Top
    RuleLabel.TextWrapped = true
    RuleLabel.LayoutOrder = 2 + i
    RuleLabel.Parent = RulesBox
end

local LegalFooter = Instance.new("Frame")
LegalFooter.Size = UDim2.new(1, 0, 0, 0)
LegalFooter.AutomaticSize = Enum.AutomaticSize.Y
LegalFooter.BackgroundColor3 = Color3.fromRGB(45, 35, 25)
LegalFooter.BorderSizePixel = 0
LegalFooter.Parent = LegalPage

local LFC = Instance.new("UICorner")
LFC.CornerRadius = UDim.new(0, 6)
LFC.Parent = LegalFooter

local LFPad = Instance.new("UIPadding")
LFPad.PaddingTop = UDim.new(0, 10)
LFPad.PaddingBottom = UDim.new(0, 10)
LFPad.PaddingLeft = UDim.new(0, 12)
LFPad.PaddingRight = UDim.new(0, 12)
LFPad.Parent = LegalFooter

local LFLayout = Instance.new("UIListLayout")
LFLayout.SortOrder = Enum.SortOrder.LayoutOrder
LFLayout.Padding = UDim.new(0, 4)
LFLayout.Parent = LegalFooter

local LFText = Instance.new("TextLabel")
LFText.Size = UDim2.new(1, 0, 0, 0)
LFText.AutomaticSize = Enum.AutomaticSize.Y
LFText.BackgroundTransparency = 1
LFText.Text = "By using this hub, you agree to these terms. If you do not agree, please close the script and do not use it. These rules may be updated at any time without notice — the latest version is always shown here in the hub.\n\n© nexongg — All rights reserved. Shark Bite Classic Hub is an original work."
LFText.TextColor3 = Color3.fromRGB(230, 200, 150)
LFText.TextSize = 11
LFText.Font = Enum.Font.Gotham
LFText.TextXAlignment = Enum.TextXAlignment.Left
LFText.TextYAlignment = Enum.TextYAlignment.Top
LFText.TextWrapped = true
LFText.LayoutOrder = 1
LFText.Parent = LegalFooter

-- ============================================================
-- BUILD CREDITS
-- ============================================================
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 90)
Header.BackgroundColor3 = Color3.fromRGB(38, 38, 45)
Header.BorderSizePixel = 0
Header.Parent = CreditsPage

local HC = Instance.new("UICorner")
HC.CornerRadius = UDim.new(0, 8)
HC.Parent = Header

local HeaderIcon = Instance.new("ImageLabel")
HeaderIcon.Size = UDim2.new(0, 50, 0, 50)
HeaderIcon.Position = UDim2.new(0, 20, 0.5, -25)
HeaderIcon.BackgroundTransparency = 1
HeaderIcon.Image = "rbxassetid://1204397029"
HeaderIcon.Parent = Header

local HeaderTitle = Instance.new("TextLabel")
HeaderTitle.Size = UDim2.new(1, -90, 0, 28)
HeaderTitle.Position = UDim2.new(0, 80, 0, 18)
HeaderTitle.BackgroundTransparency = 1
HeaderTitle.Text = "Shark Bite Classic Hub"
HeaderTitle.TextColor3 = Color3.fromRGB(0, 170, 255)
HeaderTitle.TextSize = 17
HeaderTitle.Font = Enum.Font.GothamBold
HeaderTitle.TextXAlignment = Enum.TextXAlignment.Left
HeaderTitle.Parent = Header

local HeaderSub = Instance.new("TextLabel")
HeaderSub.Size = UDim2.new(1, -90, 0, 20)
HeaderSub.Position = UDim2.new(0, 80, 0, 46)
HeaderSub.BackgroundTransparency = 1
HeaderSub.Text = "v1.0 • Made with love by nexongg"
HeaderSub.TextColor3 = Color3.fromRGB(160, 160, 170)
HeaderSub.TextSize = 12
HeaderSub.Font = Enum.Font.Gotham
HeaderSub.TextXAlignment = Enum.TextXAlignment.Left
HeaderSub.Parent = Header

createAboutCard(CreditsPage)

createCreditEntry(CreditsPage, "DEVELOPER", "nexongg", Color3.fromRGB(0, 170, 255))
createCreditEntry(CreditsPage, "UI DESIGN", "nexongg", Color3.fromRGB(150, 100, 255))
createCreditEntry(CreditsPage, "INSPIRATION", "nexongg", Color3.fromRGB(50, 200, 100))
createCreditEntry(CreditsPage, "TESTING", "nexongg", Color3.fromRGB(255, 180, 50))
createCreditEntry(CreditsPage, "SPECIAL THANKS", "nexongg", Color3.fromRGB(255, 100, 130))

local Footer = Instance.new("TextLabel")
Footer.Size = UDim2.new(1, 0, 0, 30)
Footer.BackgroundTransparency = 1
Footer.Text = "Happy hunting! 🦈"
Footer.TextColor3 = Color3.fromRGB(160, 160, 170)
Footer.TextSize = 12
Footer.Font = Enum.Font.Gotham
Footer.Parent = CreditsPage

-- ============================================================
-- RESPAWN CLEANUP
-- ============================================================
LocalPlayer.CharacterAdded:Connect(function()
    if flyConnection then flyConnection:Disconnect(); flyConnection = nil end
    if noclipConnection then noclipConnection:Disconnect(); noclipConnection = nil end
    if infJumpConnection then infJumpConnection:Disconnect(); infJumpConnection = nil end
    if speedBoostConnection then speedBoostConnection:Disconnect(); speedBoostConnection = nil end
    if spinConnection then spinConnection:Disconnect(); spinConnection = nil end
end)
Script worked? 🚀 Boost it to #1 so others find it too.

Comments (0)

Log in to add a comment.