Hub By Deepseek 1 prompt btw
Key RequiredUniversal

Hub By Deepseek 1 prompt btw

Universal ScriptThatBoySaiThatBoySai 6.3K views 22 executesUpdated Jun 13, 2025
0.0/ 5(2 votes)
020% Positive
Lua Script•1860 lines (65095 chars)
--[[ # was made by DEEPSEEK - prompted by "skondoooo92"
 # Discord server is: "https://discord.gg/4THYgrRQd3"
 # Join our server for more updates and information]]--

loadstring(game:HttpGet("https://raw.githubusercontent.com/ProphecySkondo/Misc/refs/heads/main/watermark.lua"))()

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local Mouse = LocalPlayer:GetMouse()

-- Advanced Features
local espEnabled = false
local spinEnabled = false
local customCursorEnabled = false
local espConnections = {}
local spinConnection = nil
local cursorGui = nil

-- Custom Cursor System
local function createCustomCursor()
    if cursorGui then
        cursorGui:Destroy()
    end
    
    cursorGui = Instance.new("ScreenGui")
    cursorGui.Name = "CustomCursor"
    cursorGui.Parent = PlayerGui
    cursorGui.IgnoreGuiInset = true
    cursorGui.ResetOnSpawn = false
    
    local cursor = Instance.new("Frame")
    cursor.Name = "Cursor"
    cursor.Parent = cursorGui
    cursor.Size = UDim2.new(0, 20, 0, 20)
    cursor.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    cursor.BorderSizePixel = 0
    cursor.AnchorPoint = Vector2.new(0.5, 0.5)
    
    local cursorCorner = Instance.new("UICorner")
    cursorCorner.CornerRadius = UDim.new(1, 0)
    cursorCorner.Parent = cursor
    
    -- Glow effect
    local glow = Instance.new("Frame")
    glow.Name = "Glow"
    glow.Parent = cursor
    glow.Size = UDim2.new(1.5, 0, 1.5, 0)
    glow.Position = UDim2.new(0.5, 0, 0.5, 0)
    glow.AnchorPoint = Vector2.new(0.5, 0.5)
    glow.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    glow.BackgroundTransparency = 0.7
    glow.BorderSizePixel = 0
    glow.ZIndex = -1
    
    local glowCorner = Instance.new("UICorner")
    glowCorner.CornerRadius = UDim.new(1, 0)
    glowCorner.Parent = glow
    
    -- Pulsing animation
    local pulseInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)
    local pulseTween = TweenService:Create(glow, pulseInfo, {
        Size = UDim2.new(2, 0, 2, 0),
        BackgroundTransparency = 0.9
    })
    pulseTween:Play()
    
    -- Update cursor position
    local updateConnection
    updateConnection = RunService.Heartbeat:Connect(function()
        if not customCursorEnabled or not cursorGui or not cursorGui.Parent then
            if updateConnection then
                updateConnection:Disconnect()
            end
            return
        end
        
        local mousePos = UserInputService:GetMouseLocation()
        cursor.Position = UDim2.new(0, mousePos.X, 0, mousePos.Y)
    end)
    
    return cursorGui
end

local function enableCustomCursor()
    customCursorEnabled = true
    Mouse.Icon = "rbxasset://textures/Blank.png"
    createCustomCursor()
end

local function disableCustomCursor()
    customCursorEnabled = false
    Mouse.Icon = ""
    if cursorGui then
        cursorGui:Destroy()
        cursorGui = nil
    end
end

-- ESP System
local function createESP(player)
    if player == LocalPlayer then return end
    
    local character = player.Character
    if not character then return end
    
    local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
    if not humanoidRootPart then return end
    
    -- Create ESP GUI
    local espGui = Instance.new("BillboardGui")
    espGui.Name = "ESP_" .. player.Name
    espGui.Parent = humanoidRootPart
    espGui.Size = UDim2.new(0, 200, 0, 50)
    espGui.StudsOffset = Vector3.new(0, 3, 0)
    espGui.AlwaysOnTop = true
    
    -- Background frame with gradient
    local frame = Instance.new("Frame")
    frame.Parent = espGui
    frame.Size = UDim2.new(1, 0, 1, 0)
    frame.BackgroundTransparency = 0.3
    frame.BorderSizePixel = 0
    
    local frameCorner = Instance.new("UICorner")
    frameCorner.CornerRadius = UDim.new(0, 8)
    frameCorner.Parent = frame
    
    local gradient = Instance.new("UIGradient")
    gradient.Parent = frame
    gradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 100)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 100, 255))
    }
    gradient.Rotation = 45
    
    -- Player name
    local nameLabel = Instance.new("TextLabel")
    nameLabel.Parent = frame
    nameLabel.Size = UDim2.new(1, 0, 0.6, 0)
    nameLabel.BackgroundTransparency = 1
    nameLabel.Text = player.Name
    nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    nameLabel.TextScaled = true
    nameLabel.Font = Enum.Font.GothamBold
    nameLabel.TextStrokeTransparency = 0
    nameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    
    -- Distance label
    local distanceLabel = Instance.new("TextLabel")
    distanceLabel.Parent = frame
    distanceLabel.Size = UDim2.new(1, 0, 0.4, 0)
    distanceLabel.Position = UDim2.new(0, 0, 0.6, 0)
    distanceLabel.BackgroundTransparency = 1
    distanceLabel.Text = "0 studs"
    distanceLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
    distanceLabel.TextScaled = true
    distanceLabel.Font = Enum.Font.Gotham
    distanceLabel.TextStrokeTransparency = 0
    distanceLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    
    -- Highlight effect
    local highlight = Instance.new("Highlight")
    highlight.Parent = character
    highlight.FillColor = Color3.fromRGB(255, 100, 100)
    highlight.FillTransparency = 0.7
    highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
    highlight.OutlineTransparency = 0
    
    -- Update distance
    local updateConnection
    updateConnection = RunService.Heartbeat:Connect(function()
        if not espEnabled or not player.Character or not LocalPlayer.Character then
            if updateConnection then
                updateConnection:Disconnect()
            end
            if espGui then espGui:Destroy() end
            if highlight then highlight:Destroy() end
            return
        end
        
        local localHRP = LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
        local playerHRP = player.Character:FindFirstChild("HumanoidRootPart")
        
        if localHRP and playerHRP then
            local distance = math.floor((localHRP.Position - playerHRP.Position).Magnitude)
            distanceLabel.Text = distance .. " studs"
            
            -- Color based on distance
            local ratio = math.clamp(distance / 100, 0, 1)
            local color = Color3.new(1 - ratio, ratio, 0)
            highlight.FillColor = color
        end
    end)
    
    espConnections[player] = {updateConnection, espGui, highlight}
end

local function enableESP()
    espEnabled = true
    
    -- Create ESP for existing players
    for _, player in pairs(Players:GetPlayers()) do
        createESP(player)
    end
    
    -- Handle new players
    espConnections.playerAdded = Players.PlayerAdded:Connect(createESP)
    
    -- Handle player leaving
    espConnections.playerRemoving = Players.PlayerRemoving:Connect(function(player)
        if espConnections[player] then
            local connection, gui, highlight = unpack(espConnections[player])
            if connection then connection:Disconnect() end
            if gui then gui:Destroy() end
            if highlight then highlight:Destroy() end
            espConnections[player] = nil
        end
    end)
    
    -- Handle character respawning
    espConnections.characterAdded = {}
    for _, player in pairs(Players:GetPlayers()) do
        espConnections.characterAdded[player] = player.CharacterAdded:Connect(function()
            wait(1)
            createESP(player)
        end)
    end
end

local function disableESP()
    espEnabled = false
    
    -- Clean up all ESP connections and GUIs
    for player, data in pairs(espConnections) do
        if type(data) == "table" and #data == 3 then
            local connection, gui, highlight = unpack(data)
            if connection then connection:Disconnect() end
            if gui then gui:Destroy() end
            if highlight then highlight:Destroy() end
        elseif type(data) == "userdata" and data.Disconnect then
            data:Disconnect()
        end
    end
    
    -- Clean up character added connections
    if espConnections.characterAdded then
        for _, connection in pairs(espConnections.characterAdded) do
            if connection then connection:Disconnect() end
        end
    end
    
    espConnections = {}
end

-- Spin System
local function enableSpin()
    if spinConnection then return end
    
    spinEnabled = true
    local character = LocalPlayer.Character
    if not character then return end
    
    local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
    if not humanoidRootPart then return end
    
    local bodyAngularVelocity = Instance.new("BodyAngularVelocity")
    bodyAngularVelocity.AngularVelocity = Vector3.new(0, 20, 0)
    bodyAngularVelocity.MaxTorque = Vector3.new(0, math.huge, 0)
    bodyAngularVelocity.Parent = humanoidRootPart
    
    spinConnection = bodyAngularVelocity
end

local function disableSpin()
    spinEnabled = false
    if spinConnection then
        spinConnection:Destroy()
        spinConnection = nil
    end
end

-- Custom Idle Animation System
local customIdleAnimationId = "113584944257171"
local idleAnimationTrack = nil
local idleAnimationObject = nil
local originalIdleAnimation = nil
local isCustomIdleEnabled = false
local idleConnection = nil
local animationLoadWait = 0.5 -- Wait time for animation to fully load

-- Function to format animation ID properly
local function formatAnimationId(id)
    -- Remove any existing prefixes
    local cleanId = tostring(id):gsub("rbxassetid://", ""):gsub("rbxasset://", ""):gsub("http://www.roblox.com/asset/?id=", "")
    
    -- Ensure it's just numbers
    cleanId = cleanId:match("%d+") or cleanId
    
    -- Return with proper prefix
    return "rbxassetid://" .. cleanId
end

-- Idle Animation Functions
local function setupCustomIdleAnimation()
    local character = LocalPlayer.Character
    if not character then 
        warn("No character found for animation setup")
        return false
    end
    
    local humanoid = character:FindFirstChild("Humanoid")
    if not humanoid then 
        warn("No humanoid found for animation setup")
        return false
    end
    
    -- Clean up existing animation objects
    if idleAnimationTrack then
        pcall(function() idleAnimationTrack:Stop() end)
        pcall(function() idleAnimationTrack:Destroy() end)
        idleAnimationTrack = nil
    end
    
    if idleAnimationObject then
        pcall(function() idleAnimationObject:Destroy() end)
    end
    
    -- Create custom idle animation with proper ID formatting
    idleAnimationObject = Instance.new("Animation")
    local formattedId = formatAnimationId(customIdleAnimationId)
    idleAnimationObject.AnimationId = formattedId
    idleAnimationObject.Name = "CustomIdleAnimation"
    
    -- Parent the animation to ensure it doesn't get garbage collected
    idleAnimationObject.Parent = character
    
    print("Attempting to load animation with ID: " .. formattedId)
    
    -- Load the animation with error handling
    local success, result = pcall(function()
        return humanoid:LoadAnimation(idleAnimationObject)
    end)
    
    if success and result then
        idleAnimationTrack = result
        idleAnimationTrack.Looped = true
        idleAnimationTrack.Priority = Enum.AnimationPriority.Idle
        
        -- Wait for animation to fully load
        wait(animationLoadWait)
        
        -- Verify the track is still valid
        if idleAnimationTrack and idleAnimationTrack.Length then
            print("Animation loaded successfully! Length: " .. tostring(idleAnimationTrack.Length))
            
            -- Find and store original idle animation
            local animate = character:FindFirstChild("Animate")
            if animate then
                local idle = animate:FindFirstChild("idle")
                if idle then
                    originalIdleAnimation = idle:FindFirstChild("Animation1") or idle:FindFirstChild("Animation2")
                end
            end
            return true
        else
            warn("Animation track became invalid after loading")
            return false
        end
    else
        warn("Failed to load animation: " .. tostring(result))
        warn("Make sure the animation ID '" .. customIdleAnimationId .. "' is correct and the animation exists")
        warn("Also ensure the animation is set to public or you own it")
        
        -- Clean up failed animation object
        if idleAnimationObject then
            pcall(function() idleAnimationObject:Destroy() end)
            idleAnimationObject = nil
        end
        return false
    end
end

local function enableCustomIdle()
    if not isCustomIdleEnabled then
        local success = setupCustomIdleAnimation()
        if not success then
            warn("Failed to enable custom idle animation - setup failed")
            return false
        end
        
        isCustomIdleEnabled = true
        
        -- Monitor character state
        idleConnection = RunService.Heartbeat:Connect(function()
            local character = LocalPlayer.Character
            if not character then return end
            
            local humanoid = character:FindFirstChild("Humanoid")
            if not humanoid then return end
            
            -- Check if character is idle (not moving)
            if humanoid.MoveDirection.Magnitude < 0.1 and humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
                if idleAnimationTrack then
                    -- Verify animation track is still valid
                    local isValid = pcall(function() return idleAnimationTrack.IsPlaying end)
                    
                    if isValid and not idleAnimationTrack.IsPlaying then
                        -- Stop default idle animations
                        for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
                            if track.Animation and track.Animation.AnimationId:find("idle") then
                                pcall(function() track:Stop() end)
                            end
                        end
                        
                        -- Play custom idle animation with error handling
                        local playSuccess, playError = pcall(function()
                            idleAnimationTrack:Play()
                        end)
                        
                        if not playSuccess then
                            warn("Failed to play idle animation: " .. tostring(playError))
                            -- Try to reload the animation
                            print("Attempting to reload animation...")
                            setupCustomIdleAnimation()
                        end
                    elseif not isValid then
                        warn("Animation track became invalid, reloading...")
                        setupCustomIdleAnimation()
                    end
                end
            else
                if idleAnimationTrack then
                    local isValid = pcall(function() return idleAnimationTrack.IsPlaying end)
                    
                    if isValid and idleAnimationTrack.IsPlaying then
                        local stopSuccess, stopError = pcall(function()
                            idleAnimationTrack:Stop()
                        end)
                        
                        if not stopSuccess then
                            warn("Failed to stop idle animation: " .. tostring(stopError))
                        end
                    end
                end
            end
        end)
        return true
    end
    return false
end

local function disableCustomIdle()
    if isCustomIdleEnabled then
        isCustomIdleEnabled = false
        
        if idleConnection then
            idleConnection:Disconnect()
            idleConnection = nil
        end
        
        if idleAnimationTrack then
            pcall(function() idleAnimationTrack:Stop() end)
            pcall(function() idleAnimationTrack:Destroy() end)
            idleAnimationTrack = nil
        end
        
        if idleAnimationObject then
            pcall(function() idleAnimationObject:Destroy() end)
            idleAnimationObject = nil
        end
        
        print("Custom idle animation disabled and cleaned up")
    end
end

-- Character respawn handling
LocalPlayer.CharacterAdded:Connect(function()
    if isCustomIdleEnabled then
        wait(2) -- Wait for character to fully load
        local success = setupCustomIdleAnimation()
        if not success then
            warn("Failed to reload animation after respawn")
        else
            print("Animation reloaded successfully after respawn")
        end
    end
end)

-- Main GUI Creation with Smooth Entrance Animation
local ScreenGui = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local TopBar = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local CloseButton = Instance.new("TextButton")
local MinimizeButton = Instance.new("TextButton")
local TabContainer = Instance.new("Frame")
local ContentFrame = Instance.new("Frame")

-- Tab System
local tabs = {}
local currentTab = nil
local allGuiElements = {} -- For transparency control

-- GUI Properties
ScreenGui.Name = "UniversalGUI_v3"
ScreenGui.Parent = PlayerGui
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false

-- Main Frame with Gradient
MainFrame.Name = "MainFrame"
MainFrame.Parent = ScreenGui
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
MainFrame.BorderSizePixel = 0
MainFrame.Position = UDim2.new(0.5, -400, 1.5, 0) -- Start off-screen
MainFrame.Size = UDim2.new(0, 800, 0, 600)
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.BackgroundTransparency = 0

local MainFrameCorner = Instance.new("UICorner")
MainFrameCorner.CornerRadius = UDim.new(0, 16)
MainFrameCorner.Parent = MainFrame

-- Main Frame Gradient
local MainFrameGradient = Instance.new("UIGradient")
MainFrameGradient.Parent = MainFrame
MainFrameGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 35)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(15, 15, 25)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
}
MainFrameGradient.Rotation = 45

-- Glow Effect
local MainFrameStroke = Instance.new("UIStroke")
MainFrameStroke.Parent = MainFrame
MainFrameStroke.Color = Color3.fromRGB(100, 150, 255)
MainFrameStroke.Thickness = 2
MainFrameStroke.Transparency = 0.5

-- Add to transparency control
table.insert(allGuiElements, MainFrame)

-- Top Bar with Gradient
TopBar.Name = "TopBar"
TopBar.Parent = MainFrame
TopBar.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
TopBar.BorderSizePixel = 0
TopBar.Size = UDim2.new(1, 0, 0, 50)

local TopBarCorner = Instance.new("UICorner")
TopBarCorner.CornerRadius = UDim.new(0, 16)
TopBarCorner.Parent = TopBar

local TopBarGradient = Instance.new("UIGradient")
TopBarGradient.Parent = TopBar
TopBarGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(60, 60, 80)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(40, 40, 60))
}
TopBarGradient.Rotation = 90

-- Top Bar Glow
local TopBarStroke = Instance.new("UIStroke")
TopBarStroke.Parent = TopBar
TopBarStroke.Color = Color3.fromRGB(150, 100, 255)
TopBarStroke.Thickness = 1
TopBarStroke.Transparency = 0.7

table.insert(allGuiElements, TopBar)

-- Title with Gradient Text Effect
Title.Name = "Title"
Title.Parent = TopBar
Title.BackgroundTransparency = 1
Title.Position = UDim2.new(0, 20, 0, 0)
Title.Size = UDim2.new(0, 300, 1, 0)
Title.Font = Enum.Font.GothamBold
Title.Text = "✨ Universal GUI v3.0 ✨"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 18
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.TextStrokeTransparency = 0
Title.TextStrokeColor3 = Color3.fromRGB(100, 150, 255)

-- Animated title color
spawn(function()
    while Title and Title.Parent do
        local colorTween = TweenService:Create(Title, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(150, 200, 255)
        })
        colorTween:Play()
        colorTween.Completed:Wait()
        
        local colorTween2 = TweenService:Create(Title, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
            TextColor3 = Color3.fromRGB(255, 150, 200)
        })
        colorTween2:Play()
        colorTween2.Completed:Wait()
    end
end)

-- Close Button with Gradient
CloseButton.Name = "CloseButton"
CloseButton.Parent = TopBar
CloseButton.BackgroundColor3 = Color3.fromRGB(255, 85, 85)
CloseButton.BorderSizePixel = 0
CloseButton.Position = UDim2.new(1, -45, 0, 10)
CloseButton.Size = UDim2.new(0, 35, 0, 30)
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Text = "✕"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 16

local CloseButtonCorner = Instance.new("UICorner")
CloseButtonCorner.CornerRadius = UDim.new(0, 8)
CloseButtonCorner.Parent = CloseButton

local CloseButtonGradient = Instance.new("UIGradient")
CloseButtonGradient.Parent = CloseButton
CloseButtonGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 100)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 50, 50))
}
CloseButtonGradient.Rotation = 45

local CloseButtonStroke = Instance.new("UIStroke")
CloseButtonStroke.Parent = CloseButton
CloseButtonStroke.Color = Color3.fromRGB(255, 150, 150)
CloseButtonStroke.Thickness = 1
CloseButtonStroke.Transparency = 0.5

-- Minimize Button with Gradient
MinimizeButton.Name = "MinimizeButton"
MinimizeButton.Parent = TopBar
MinimizeButton.BackgroundColor3 = Color3.fromRGB(255, 195, 85)
MinimizeButton.BorderSizePixel = 0
MinimizeButton.Position = UDim2.new(1, -85, 0, 10)
MinimizeButton.Size = UDim2.new(0, 35, 0, 30)
MinimizeButton.Font = Enum.Font.GothamBold
MinimizeButton.Text = "−"
MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeButton.TextSize = 18

local MinimizeButtonCorner = Instance.new("UICorner")
MinimizeButtonCorner.CornerRadius = UDim.new(0, 8)
MinimizeButtonCorner.Parent = MinimizeButton

local MinimizeButtonGradient = Instance.new("UIGradient")
MinimizeButtonGradient.Parent = MinimizeButton
MinimizeButtonGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 200, 100)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 150, 50))
}
MinimizeButtonGradient.Rotation = 45

local MinimizeButtonStroke = Instance.new("UIStroke")
MinimizeButtonStroke.Parent = MinimizeButton
MinimizeButtonStroke.Color = Color3.fromRGB(255, 220, 150)
MinimizeButtonStroke.Thickness = 1
MinimizeButtonStroke.Transparency = 0.5

table.insert(allGuiElements, CloseButton)
table.insert(allGuiElements, MinimizeButton)

-- Tab Container with Gradient
TabContainer.Name = "TabContainer"
TabContainer.Parent = MainFrame
TabContainer.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
TabContainer.BorderSizePixel = 0
TabContainer.Position = UDim2.new(0, 0, 0, 50)
TabContainer.Size = UDim2.new(0, 180, 1, -50)

local TabContainerCorner = Instance.new("UICorner")
TabContainerCorner.CornerRadius = UDim.new(0, 12)
TabContainerCorner.Parent = TabContainer

local TabContainerGradient = Instance.new("UIGradient")
TabContainerGradient.Parent = TabContainer
TabContainerGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 35, 50)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 25, 35))
}
TabContainerGradient.Rotation = 90

local TabContainerStroke = Instance.new("UIStroke")
TabContainerStroke.Parent = TabContainer
TabContainerStroke.Color = Color3.fromRGB(80, 80, 120)
TabContainerStroke.Thickness = 1
TabContainerStroke.Transparency = 0.7

-- Content Frame with Gradient
ContentFrame.Name = "ContentFrame"
ContentFrame.Parent = MainFrame
ContentFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
ContentFrame.BorderSizePixel = 0
ContentFrame.Position = UDim2.new(0, 180, 0, 50)
ContentFrame.Size = UDim2.new(1, -180, 1, -50)

local ContentFrameCorner = Instance.new("UICorner")
ContentFrameCorner.CornerRadius = UDim.new(0, 12)
ContentFrameCorner.Parent = ContentFrame

local ContentFrameGradient = Instance.new("UIGradient")
ContentFrameGradient.Parent = ContentFrame
ContentFrameGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 40)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(15, 15, 25))
}
ContentFrameGradient.Rotation = 135

local ContentFrameStroke = Instance.new("UIStroke")
ContentFrameStroke.Parent = ContentFrame
ContentFrameStroke.Color = Color3.fromRGB(60, 80, 120)
ContentFrameStroke.Thickness = 1
ContentFrameStroke.Transparency = 0.8

table.insert(allGuiElements, TabContainer)
table.insert(allGuiElements, ContentFrame)

-- Tab Creation Function with Enhanced Styling
local function createTab(name, icon)
    local tabButton = Instance.new("TextButton")
    local tabIcon = Instance.new("TextLabel")
    local tabContent = Instance.new("ScrollingFrame")
    
    -- Tab Button with Gradient
    tabButton.Name = name .. "Tab"
    tabButton.Parent = TabContainer
    tabButton.BackgroundColor3 = Color3.fromRGB(45, 45, 60)
    tabButton.BorderSizePixel = 0
    tabButton.Size = UDim2.new(1, -10, 0, 60)
    tabButton.Font = Enum.Font.Gotham
    tabButton.Text = ""
    tabButton.TextColor3 = Color3.fromRGB(200, 200, 200)
    tabButton.TextSize = 14
    
    local tabButtonCorner = Instance.new("UICorner")
    tabButtonCorner.CornerRadius = UDim.new(0, 12)
    tabButtonCorner.Parent = tabButton
    
    local tabButtonGradient = Instance.new("UIGradient")
    tabButtonGradient.Parent = tabButton
    tabButtonGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, Color3.fromRGB(50, 50, 70)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(35, 35, 50))
    }
    tabButtonGradient.Rotation = 45
    
    local tabButtonStroke = Instance.new("UIStroke")
    tabButtonStroke.Parent = tabButton
    tabButtonStroke.Color = Color3.fromRGB(80, 100, 150)
    tabButtonStroke.Thickness = 1
    tabButtonStroke.Transparency = 0.8
    
    table.insert(allGuiElements, tabButton)
    
    -- Tab Icon with Glow Effect
    tabIcon.Name = "Icon"
    tabIcon.Parent = tabButton
    tabIcon.BackgroundTransparency = 1
    tabIcon.Position = UDim2.new(0, 15, 0, 8)
    tabIcon.Size = UDim2.new(0, 35, 0, 25)
    tabIcon.Font = Enum.Font.GothamBold
    tabIcon.Text = icon
    tabIcon.TextColor3 = Color3.fromRGB(200, 200, 220)
    tabIcon.TextSize = 20
    tabIcon.TextXAlignment = Enum.TextXAlignment.Left
    tabIcon.TextStrokeTransparency = 0
    tabIcon.TextStrokeColor3 = Color3.fromRGB(100, 150, 255)
    
    -- Tab Name with Better Styling
    local tabName = Instance.new("TextLabel")
    tabName.Name = "TabName"
    tabName.Parent = tabButton
    tabName.BackgroundTransparency = 1
    tabName.Position = UDim2.new(0, 15, 0, 35)
    tabName.Size = UDim2.new(1, -30, 0, 20)
    tabName.Font = Enum.Font.GothamSemibold
    tabName.Text = name
    tabName.TextColor3 = Color3.fromRGB(220, 220, 240)
    tabName.TextSize = 13
    tabName.TextXAlignment = Enum.TextXAlignment.Left
    tabName.TextStrokeTransparency = 0.5
    tabName.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    
    -- Tab Content with Better Scrolling
    tabContent.Name = name .. "Content"
    tabContent.Parent = ContentFrame
    tabContent.BackgroundTransparency = 1
    tabContent.BorderSizePixel = 0
    tabContent.Size = UDim2.new(1, 0, 1, 0)
    tabContent.ScrollBarThickness = 8
    tabContent.ScrollBarImageColor3 = Color3.fromRGB(150, 150, 200)
    tabContent.ScrollBarImageTransparency = 0.3
    tabContent.Visible = false
    tabContent.ScrollingDirection = Enum.ScrollingDirection.Y
    tabContent.ElasticBehavior = Enum.ElasticBehavior.WhenScrollable
    
    local contentLayout = Instance.new("UIListLayout")
    contentLayout.Parent = tabContent
    contentLayout.Padding = UDim.new(0, 15)
    contentLayout.SortOrder = Enum.SortOrder.LayoutOrder
    contentLayout.FillDirection = Enum.FillDirection.Vertical
    
    local contentPadding = Instance.new("UIPadding")
    contentPadding.Parent = tabContent
    contentPadding.PaddingTop = UDim.new(0, 20)
    contentPadding.PaddingBottom = UDim.new(0, 20)
    contentPadding.PaddingLeft = UDim.new(0, 20)
    contentPadding.PaddingRight = UDim.new(0, 20)
    
    -- Tab functionality with smooth animations
    tabButton.MouseButton1Click:Connect(function()
        switchTab(name)
    end)
    
    -- Hover effects
    tabButton.MouseEnter:Connect(function()
        if currentTab ~= name then
            tabButtonGradient.Color = ColorSequence.new{
                ColorSequenceKeypoint.new(0, Color3.fromRGB(70, 70, 90)),
                ColorSequenceKeypoint.new(1, Color3.fromRGB(55, 55, 75))
            }
            
            local strokeTween = TweenService:Create(tabButtonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                Transparency = 0.3
            })
            strokeTween:Play()
        end
    end)
    
    tabButton.MouseLeave:Connect(function()
        if currentTab ~= name then
            tabButtonGradient.Color = ColorSequence.new{
                ColorSequenceKeypoint.new(0, Color3.fromRGB(50, 50, 70)),
                ColorSequenceKeypoint.new(1, Color3.fromRGB(35, 35, 50))
            }
            
            local strokeTween = TweenService:Create(tabButtonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                Transparency = 0.8
            })
            strokeTween:Play()
        end
    end)
    
    tabs[name] = {
        button = tabButton,
        content = tabContent,
        icon = tabIcon,
        name = tabName
    }
    
    return tabContent
end

-- Switch Tab Function with Smooth Animations
function switchTab(tabName)
    for name, tab in pairs(tabs) do
        if name == tabName then
            -- Active tab styling
            local activeGradient = tab.button:FindFirstChild("UIGradient")
            if activeGradient then
                activeGradient.Color = ColorSequence.new{
                    ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 150, 255)),
                    ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 120, 200))
                }
            end
            
            local activeStroke = tab.button:FindFirstChild("UIStroke")
            if activeStroke then
                local strokeTween = TweenService:Create(activeStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quad), {
                    Color = Color3.fromRGB(150, 200, 255),
                    Transparency = 0
                })
                strokeTween:Play()
            end
            
            -- Content fade in
            tab.content.Visible = true
            tab.content.ScrollBarImageTransparency = 1
            tab.content.ScrollBarImageTransparency = 0.3
            
            -- Icon and text colors
            local iconTween = TweenService:Create(tab.icon, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                TextColor3 = Color3.fromRGB(150, 200, 255)
            })
            iconTween:Play()
            
            local nameTween = TweenService:Create(tab.name, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                TextColor3 = Color3.fromRGB(255, 255, 255)
            })
            nameTween:Play()
            
            currentTab = name
        else
            -- Inactive tab styling
            local inactiveGradient = tab.button:FindFirstChild("UIGradient")
            if inactiveGradient then
                inactiveGradient.Color = ColorSequence.new{
                    ColorSequenceKeypoint.new(0, Color3.fromRGB(50, 50, 70)),
                    ColorSequenceKeypoint.new(1, Color3.fromRGB(35, 35, 50))
                }
            end
            
            local inactiveStroke = tab.button:FindFirstChild("UIStroke")
            if inactiveStroke then
                local strokeTween = TweenService:Create(inactiveStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quad), {
                    Color = Color3.fromRGB(80, 100, 150),
                    Transparency = 0.8
                })
                strokeTween:Play()
            end
            
            -- Content fade out
            if tab.content.Visible then
                tab.content.Visible = false
            end
            
            -- Icon and text colors
            local iconTween = TweenService:Create(tab.icon, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                TextColor3 = Color3.fromRGB(200, 200, 220)
            })
            iconTween:Play()
            
            local nameTween = TweenService:Create(tab.name, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
                TextColor3 = Color3.fromRGB(220, 220, 240)
            })
            nameTween:Play()
        end
    end
end

-- Create UI Elements Function with Enhanced Styling
local function createButton(parent, text, callback)
    local button = Instance.new("TextButton")
    button.Parent = parent
    button.BackgroundColor3 = Color3.fromRGB(85, 170, 255)
    button.BorderSizePixel = 0
    button.Size = UDim2.new(1, 0, 0, 45)
    button.Font = Enum.Font.GothamSemibold
    button.Text = text
    button.TextColor3 = Color3.fromRGB(255, 255, 255)
    button.TextSize = 15
    button.TextStrokeTransparency = 0.5
    button.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    
    local buttonCorner = Instance.new("UICorner")
    buttonCorner.CornerRadius = UDim.new(0, 10)
    buttonCorner.Parent = button
    
    local buttonGradient = Instance.new("UIGradient")
    buttonGradient.Parent = button
    buttonGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 180, 255)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 140, 220))
    }
    buttonGradient.Rotation = 45
    
    local buttonStroke = Instance.new("UIStroke")
    buttonStroke.Parent = button
    buttonStroke.Color = Color3.fromRGB(150, 200, 255)
    buttonStroke.Thickness = 1
    buttonStroke.Transparency = 0.5
    
    table.insert(allGuiElements, button)
    
    button.MouseButton1Click:Connect(callback)
    
    -- Enhanced hover effects
    button.MouseEnter:Connect(function()
        buttonGradient.Color = ColorSequence.new{
            ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 200, 255)),
            ColorSequenceKeypoint.new(1, Color3.fromRGB(90, 160, 240))
        }
        
        local strokeTween = TweenService:Create(buttonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Transparency = 0.2
        })
        strokeTween:Play()
        
        local scaleTween = TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(1, 0, 0, 48)
        })
        scaleTween:Play()
    end)
    
    button.MouseLeave:Connect(function()
        buttonGradient.Color = ColorSequence.new{
            ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 180, 255)),
            ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 140, 220))
        }
        
        local strokeTween = TweenService:Create(buttonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Transparency = 0.5
        })
        strokeTween:Play()
        
        local scaleTween = TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(1, 0, 0, 45)
        })
        scaleTween:Play()
    end)
    
    return button
end

local function createToggleButton(parent, text, defaultState, callback)
    local button = Instance.new("TextButton")
    button.Parent = parent
    button.BackgroundColor3 = defaultState and Color3.fromRGB(85, 255, 85) or Color3.fromRGB(255, 85, 85)
    button.BorderSizePixel = 0
    button.Size = UDim2.new(1, 0, 0, 45)
    button.Font = Enum.Font.GothamSemibold
    button.Text = text .. (defaultState and " ✓ ON" or " ✗ OFF")
    button.TextColor3 = Color3.fromRGB(255, 255, 255)
    button.TextSize = 15
    button.TextStrokeTransparency = 0.5
    button.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    
    local buttonCorner = Instance.new("UICorner")
    buttonCorner.CornerRadius = UDim.new(0, 10)
    buttonCorner.Parent = button
    
    local buttonGradient = Instance.new("UIGradient")
    buttonGradient.Parent = button
    buttonGradient.Rotation = 45
    
    local buttonStroke = Instance.new("UIStroke")
    buttonStroke.Parent = button
    buttonStroke.Thickness = 1
    buttonStroke.Transparency = 0.5
    
    local isToggled = defaultState
    
    local function updateToggleStyle()
        if isToggled then
            buttonGradient.Color = ColorSequence.new{
                ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 255, 100)),
                ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 200, 70))
            }
            buttonStroke.Color = Color3.fromRGB(150, 255, 150)
        else
            buttonGradient.Color = ColorSequence.new{
                ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 100)),
                ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 70, 70))
            }
            buttonStroke.Color = Color3.fromRGB(255, 150, 150)
        end
    end
    
    updateToggleStyle()
    table.insert(allGuiElements, button)
    
    button.MouseButton1Click:Connect(function()
        isToggled = not isToggled
        button.Text = text .. (isToggled and " ✓ ON" or " ✗ OFF")
        
        -- Smooth toggle animation
        local toggleTween = TweenService:Create(button, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Size = UDim2.new(1, 0, 0, 48)
        })
        toggleTween:Play()
        
        toggleTween.Completed:Connect(function()
            local returnTween = TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
                Size = UDim2.new(1, 0, 0, 45)
            })
            returnTween:Play()
        end)
        
        updateToggleStyle()
        callback(isToggled)
    end)
    
    -- Hover effects
    button.MouseEnter:Connect(function()
        local scaleTween = TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(1, 0, 0, 48)
        })
        scaleTween:Play()
        
        local strokeTween = TweenService:Create(buttonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Transparency = 0.2
        })
        strokeTween:Play()
    end)
    
    button.MouseLeave:Connect(function()
        local scaleTween = TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(1, 0, 0, 45)
        })
        scaleTween:Play()
        
        local strokeTween = TweenService:Create(buttonStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Transparency = 0.5
        })
        strokeTween:Play()
    end)
    
    return button
end

local function createSlider(parent, text, min, max, default, callback)
    local sliderFrame = Instance.new("Frame")
    sliderFrame.Parent = parent
    sliderFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    sliderFrame.BorderSizePixel = 0
    sliderFrame.Size = UDim2.new(1, 0, 0, 60)
    
    local sliderCorner = Instance.new("UICorner")
    sliderCorner.CornerRadius = UDim.new(0, 8)
    sliderCorner.Parent = sliderFrame
    
    local sliderLabel = Instance.new("TextLabel")
    sliderLabel.Parent = sliderFrame
    sliderLabel.BackgroundTransparency = 1
    sliderLabel.Position = UDim2.new(0, 10, 0, 5)
    sliderLabel.Size = UDim2.new(1, -20, 0, 20)
    sliderLabel.Font = Enum.Font.Gotham
    sliderLabel.Text = text .. ": " .. default
    sliderLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    sliderLabel.TextSize = 12
    sliderLabel.TextXAlignment = Enum.TextXAlignment.Left
    
    local sliderBar = Instance.new("Frame")
    sliderBar.Parent = sliderFrame
    sliderBar.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    sliderBar.BorderSizePixel = 0
    sliderBar.Position = UDim2.new(0, 10, 0, 30)
    sliderBar.Size = UDim2.new(1, -20, 0, 20)
    
    local sliderBarCorner = Instance.new("UICorner")
    sliderBarCorner.CornerRadius = UDim.new(0, 10)
    sliderBarCorner.Parent = sliderBar
    
    local sliderFill = Instance.new("Frame")
    sliderFill.Parent = sliderBar
    sliderFill.BackgroundColor3 = Color3.fromRGB(85, 170, 255)
    sliderFill.BorderSizePixel = 0
    sliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
    
    local sliderFillCorner = Instance.new("UICorner")
    sliderFillCorner.CornerRadius = UDim.new(0, 10)
    sliderFillCorner.Parent = sliderFill
    
    local sliderButton = Instance.new("TextButton")
    sliderButton.Parent = sliderBar
    sliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    sliderButton.BorderSizePixel = 0
    sliderButton.Position = UDim2.new((default - min) / (max - min), -10, 0.5, -10)
    sliderButton.Size = UDim2.new(0, 20, 0, 20)
    sliderButton.Text = ""
    
    local sliderButtonCorner = Instance.new("UICorner")
    sliderButtonCorner.CornerRadius = UDim.new(1, 0)
    sliderButtonCorner.Parent = sliderButton
    
    local dragging = false
    local currentValue = default
    
    sliderButton.MouseButton1Down:Connect(function()
        dragging = true
    end)
    
    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    
    UserInputService.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            local mouse = UserInputService:GetMouseLocation()
            local relativePos = math.clamp((mouse.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1)
            currentValue = math.floor(min + (max - min) * relativePos)
            
            sliderButton.Position = UDim2.new(relativePos, -10, 0.5, -10)
            sliderFill.Size = UDim2.new(relativePos, 0, 1, 0)
            sliderLabel.Text = text .. ": " .. currentValue
            
            if callback then
                callback(currentValue)
            end
        end
    end)
    
    return sliderFrame
end

local function createTextBox(parent, placeholder, callback)
    local textBox = Instance.new("TextBox")
    textBox.Parent = parent
    textBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    textBox.BorderSizePixel = 0
    textBox.Size = UDim2.new(1, 0, 0, 35)
    textBox.Font = Enum.Font.Gotham
    textBox.PlaceholderText = placeholder
    textBox.Text = ""
    textBox.TextColor3 = Color3.fromRGB(255, 255, 255)
    textBox.TextSize = 14
    textBox.TextXAlignment = Enum.TextXAlignment.Left
    
    local textBoxCorner = Instance.new("UICorner")
    textBoxCorner.CornerRadius = UDim.new(0, 6)
    textBoxCorner.Parent = textBox
    
    local textBoxPadding = Instance.new("UIPadding")
    textBoxPadding.Parent = textBox
    textBoxPadding.PaddingLeft = UDim.new(0, 10)
    textBoxPadding.PaddingRight = UDim.new(0, 10)
    
    if callback then
        textBox.FocusLost:Connect(function()
            callback(textBox.Text)
        end)
    end
    
    return textBox
end

-- Create Tabs with New Features
local executorTab = createTab("Executor", "⚡")
local scriptsTab = createTab("Scripts", "📜")
local animationsTab = createTab("Animations", "🎭")
local visualsTab = createTab("Visuals", "👁️")
local movementTab = createTab("Movement", "🏃")
local settingsTab = createTab("Settings", "⚙️")
local playerTab = createTab("Player", "👤")

-- Executor Tab Content
local codeEditor = Instance.new("TextBox")
codeEditor.Parent = executorTab
codeEditor.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
codeEditor.BorderSizePixel = 0
codeEditor.Size = UDim2.new(1, 0, 0, 300)
codeEditor.Font = Enum.Font.Code
codeEditor.PlaceholderText = "-- Enter your Lua code here..."
codeEditor.Text = ""
codeEditor.TextColor3 = Color3.fromRGB(255, 255, 255)
codeEditor.TextSize = 14
codeEditor.TextXAlignment = Enum.TextXAlignment.Left
codeEditor.TextYAlignment = Enum.TextYAlignment.Top
codeEditor.MultiLine = true
codeEditor.ClearTextOnFocus = false

local codeEditorCorner = Instance.new("UICorner")
codeEditorCorner.CornerRadius = UDim.new(0, 8)
codeEditorCorner.Parent = codeEditor

local codeEditorPadding = Instance.new("UIPadding")
codeEditorPadding.Parent = codeEditor
codeEditorPadding.PaddingTop = UDim.new(0, 10)
codeEditorPadding.PaddingBottom = UDim.new(0, 10)
codeEditorPadding.PaddingLeft = UDim.new(0, 10)
codeEditorPadding.PaddingRight = UDim.new(0, 10)

createButton(executorTab, "Execute Code", function()
    local code = codeEditor.Text
    if code and code ~= "" then
        local success, error = pcall(function()
            loadstring(code)()
        end)
        if not success then
            warn("Execution Error: " .. tostring(error))
        end
    end
end)

createButton(executorTab, "Clear Editor", function()
    codeEditor.Text = ""
end)

-- Scripts Tab Content
local universalScripts = {
    {name = "Infinite Jump", code = [[
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

UserInputService.JumpRequest:Connect(function()
    if player.Character and player.Character:FindFirstChild("Humanoid") then
        player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
    end
end)
]]},
    {name = "Speed Boost", code = [[
local Players = game:GetService("Players")
local player = Players.LocalPlayer

if player.Character and player.Character:FindFirstChild("Humanoid") then
    player.Character.Humanoid.WalkSpeed = 50
end
]]},
    {name = "Fly Script", code = [[
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

local flying = false
local speed = 50

local function fly()
    local character = player.Character
    if not character or not character:FindFirstChild("HumanoidRootPart") then return end
    
    local bodyVelocity = Instance.new("BodyVelocity")
    bodyVelocity.MaxForce = Vector3.new(4000, 4000, 4000)
    bodyVelocity.Velocity = Vector3.new(0, 0, 0)
    bodyVelocity.Parent = character.HumanoidRootPart
    
    flying = true
    
    while flying do
        local camera = workspace.CurrentCamera
        local moveVector = Vector3.new(0, 0, 0)
        
        if UserInputService:IsKeyDown(Enum.KeyCode.W) then
            moveVector = moveVector + camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.S) then
            moveVector = moveVector - camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.A) then
            moveVector = moveVector - camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.D) then
            moveVector = moveVector + camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
            moveVector = moveVector + Vector3.new(0, 1, 0)
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
            moveVector = moveVector - Vector3.new(0, 1, 0)
        end
        
        bodyVelocity.Velocity = moveVector * speed
        wait()
    end
    
    bodyVelocity:Destroy()
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.KeyCode == Enum.KeyCode.F then
        if flying then
            flying = false
        else
            fly()
        end
    end
end)
]]},
    {name = "Noclip", code = [[
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

local noclipping = false

local function noclip()
    noclipping = not noclipping
    
    if noclipping then
        local connection
        connection = RunService.Stepped:Connect(function()
            if not noclipping then
                connection:Disconnect()
                return
            end
            
            local character = player.Character
            if character then
                for _, part in pairs(character:GetDescendants()) do
                    if part:IsA("BasePart") and part.CanCollide then
                        part.CanCollide = false
                    end
                end
            end
        end)
    end
end

noclip()
]]}
}

for _, script in ipairs(universalScripts) do
    createButton(scriptsTab, script.name, function()
        loadstring(script.code)()
    end)
end

-- Animations Tab Content
local animationIdBox = createTextBox(animationsTab, "Enter Animation ID (numbers only)", function(text)
    if text and text ~= "" then
        -- Clean the input to ensure it's just numbers
        local cleanId = text:gsub("rbxassetid://", ""):gsub("rbxasset://", ""):gsub("http://www.roblox.com/asset/?id=", "")
        cleanId = cleanId:match("%d+") or cleanId
        
        if cleanId and cleanId ~= "" then
            customIdleAnimationId = cleanId
            print("Animation ID updated to: " .. customIdleAnimationId)
            
            if isCustomIdleEnabled then
                disableCustomIdle()
                local success = enableCustomIdle()
                if success then
                    print("Animation reloaded successfully!")
                else
                    print("Failed to reload animation with new ID")
                end
            end
        else
            warn("Invalid animation ID format. Please enter numbers only.")
        end
    end
end)

-- Set default animation ID
animationIdBox.Text = "113584944257171"

createToggleButton(animationsTab, "Custom Idle Animation", false, function(enabled)
    if enabled then
        local success = enableCustomIdle()
        if success then
            print("Custom idle animation enabled!")
        else
            print("Failed to enable custom idle animation!")
        end
    else
        disableCustomIdle()
        print("Custom idle animation disabled!")
    end
end)

createButton(animationsTab, "Play Animation Once", function()
    local character = LocalPlayer.Character
    if not character then 
        warn("No character found")
        return 
    end
    
    local humanoid = character:FindFirstChild("Humanoid")
    if not humanoid then 
        warn("No humanoid found")
        return 
    end
    
    local animation = Instance.new("Animation")
    local formattedId = formatAnimationId(customIdleAnimationId)
    animation.AnimationId = formattedId
    animation.Name = "TestAnimation"
    
    -- Parent to character to prevent garbage collection
    animation.Parent = character
    
    print("Testing animation with ID: " .. formattedId)
    
    local success, result = pcall(function()
        return humanoid:LoadAnimation(animation)
    end)
    
    if success and result then
        local animTrack = result
        
        -- Wait for animation to load
        wait(animationLoadWait)
        
        -- Verify track is valid
        local isValid = pcall(function() return animTrack.Length end)
        
        if isValid then
            print("Animation loaded successfully! Length: " .. tostring(animTrack.Length or "Unknown"))
            
            local playSuccess, playError = pcall(function()
                animTrack:Play()
            end)
            
            if playSuccess then
                print("Animation is now playing!")
                
                -- Set up cleanup
                local cleanupConnection
                cleanupConnection = animTrack.Ended:Connect(function()
                    print("Test animation ended")
                    pcall(function() animTrack:Destroy() end)
                    pcall(function() animation:Destroy() end)
                    if cleanupConnection then
                        cleanupConnection:Disconnect()
                    end
                end)
                
                -- Auto-cleanup after 15 seconds if animation doesn't end
                spawn(function()
                    wait(15)
                    if animTrack then
                        print("Auto-cleaning up test animation")
                        pcall(function() animTrack:Stop() end)
                        pcall(function() animTrack:Destroy() end)
                        pcall(function() animation:Destroy() end)
                        if cleanupConnection then
                            cleanupConnection:Disconnect()
                        end
                    end
                end)
            else
                warn("Failed to play animation: " .. tostring(playError))
                pcall(function() animTrack:Destroy() end)
                pcall(function() animation:Destroy() end)
            end
        else
            warn("Animation track is invalid after loading")
            pcall(function() animTrack:Destroy() end)
            pcall(function() animation:Destroy() end)
        end
    else
        warn("Failed to load test animation: " .. tostring(result))
        warn("Please check if the animation ID is correct and accessible")
        pcall(function() animation:Destroy() end)
    end
end)

createButton(animationsTab, "Stop All Animations", function()
    local character = LocalPlayer.Character
    if not character then 
        warn("No character found")
        return 
    end
    
    local humanoid = character:FindFirstChild("Humanoid")
    if not humanoid then 
        warn("No humanoid found")
        return 
    end
    
    local tracks = humanoid:GetPlayingAnimationTracks()
    print("Stopping " .. #tracks .. " animation(s)")
    
    for _, track in pairs(tracks) do
        pcall(function() 
            print("Stopping: " .. (track.Animation and track.Animation.Name or "Unknown"))
            track:Stop() 
        end)
    end
    
    print("All animations stopped")
end)

createButton(animationsTab, "Debug Animation Status", function()
    local character = LocalPlayer.Character
    if not character then 
        print("❌ No character found")
        return 
    end
    
    local humanoid = character:FindFirstChild("Humanoid")
    if not humanoid then 
        print("❌ No humanoid found")
        return 
    end
    
    print("🔍 Animation Debug Info:")
    print("Custom Animation ID: " .. customIdleAnimationId)
    print("Formatted ID: " .. formatAnimationId(customIdleAnimationId))
    print("Custom Idle Enabled: " .. tostring(isCustomIdleEnabled))
    
    if idleAnimationTrack then
        local isValid = pcall(function() return idleAnimationTrack.IsPlaying end)
        if isValid then
            print("✅ Idle Track Valid - Playing: " .. tostring(idleAnimationTrack.IsPlaying))
            print("Track Length: " .. tostring(idleAnimationTrack.Length or "Unknown"))
        else
            print("❌ Idle Track Invalid")
        end
    else
        print("❌ No idle animation track loaded")
    end
    
    if idleAnimationObject then
        print("✅ Animation Object Exists: " .. idleAnimationObject.AnimationId)
    else
        print("❌ No animation object")
    end
    
    local tracks = humanoid:GetPlayingAnimationTracks()
    print("Currently Playing " .. #tracks .. " animation(s):")
    for i, track in pairs(tracks) do
        local name = track.Animation and track.Animation.Name or "Unknown"
        local id = track.Animation and track.Animation.AnimationId or "Unknown"
        print("  " .. i .. ". " .. name .. " (" .. id .. ")")
    end
end)

-- Visuals Tab Content
createToggleButton(visualsTab, "ESP Players", false, function(enabled)
    if enabled then
        enableESP()
        print("ESP enabled!")
    else
        disableESP()
        print("ESP disabled!")
    end
end)

createToggleButton(visualsTab, "Custom Cursor", false, function(enabled)
    if enabled then
        enableCustomCursor()
        print("Custom cursor enabled!")
    else
        disableCustomCursor()
        print("Custom cursor disabled!")
    end
end)

createButton(visualsTab, "Fullbright", function()
    Lighting.Brightness = 2
    Lighting.ClockTime = 14
    Lighting.FogEnd = 100000
    Lighting.GlobalShadows = false
    Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
    print("Fullbright enabled!")
end)

-- Movement Tab Content
createToggleButton(movementTab, "Character Spin", false, function(enabled)
    if enabled then
        enableSpin()
        print("Character spin enabled!")
    else
        disableSpin()
        print("Character spin disabled!")
    end
end)

createButton(movementTab, "Teleport to Spawn", function()
    local character = LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") then
        character.HumanoidRootPart.CFrame = CFrame.new(0, 50, 0)
        print("Teleported to spawn!")
    end
end)

-- Settings Tab Content with Fixed Transparency
createSlider(settingsTab, "GUI Transparency", 0, 90, 0, function(value)
    local transparency = value / 100
    
    -- Apply transparency to all GUI elements
    for _, element in pairs(allGuiElements) do
        if element and element.Parent then
            local currentTransparency = element.BackgroundTransparency
            element.BackgroundTransparency = math.min(0.95, transparency + (currentTransparency * 0.1))
            
            -- Handle gradients
            local gradient = element:FindFirstChild("UIGradient")
            if gradient then
                -- UIGradient transparency uses NumberSequence, not a single number
                gradient.Transparency = NumberSequence.new{
                    NumberSequenceKeypoint.new(0, transparency),
                    NumberSequenceKeypoint.new(1, transparency)
                }
            end
            
            -- Handle strokes
            local stroke = element:FindFirstChild("UIStroke")
            if stroke then
                stroke.Transparency = math.min(0.95, transparency + 0.3)
            end
        end
    end
    
    -- Special handling for main frame
    MainFrame.BackgroundTransparency = transparency
    TopBar.BackgroundTransparency = transparency
    TabContainer.BackgroundTransparency = transparency
    ContentFrame.BackgroundTransparency = transparency
end)

createSlider(settingsTab, "Animation Speed", 1, 10, 5, function(value)
    if idleAnimationTrack then
        idleAnimationTrack:AdjustSpeed(value / 5)
    end
end)

createButton(settingsTab, "Reset GUI Position", function()
    MainFrame.Position = UDim2.new(0.5, -400, 0.5, -300)
end)

-- Player Tab Content
createSlider(playerTab, "Walk Speed", 16, 100, 16, function(value)
    local player = Players.LocalPlayer
    if player.Character and player.Character:FindFirstChild("Humanoid") then
        player.Character.Humanoid.WalkSpeed = value
    end
end)

createSlider(playerTab, "Jump Power", 50, 200, 50, function(value)
    local player = Players.LocalPlayer
    if player.Character and player.Character:FindFirstChild("Humanoid") then
        player.Character.Humanoid.JumpPower = value
    end
end)

createButton(playerTab, "Reset Character", function()
    local player = Players.LocalPlayer
    if player.Character then
        player.Character:BreakJoints()
    end
end)

-- Tab Layout
local tabLayout = Instance.new("UIListLayout")
tabLayout.Parent = TabContainer
tabLayout.Padding = UDim.new(0, 5)
tabLayout.SortOrder = Enum.SortOrder.LayoutOrder

local tabPadding = Instance.new("UIPadding")
tabPadding.Parent = TabContainer
tabPadding.PaddingTop = UDim.new(0, 10)
tabPadding.PaddingBottom = UDim.new(0, 10)
tabPadding.PaddingLeft = UDim.new(0, 10)
tabPadding.PaddingRight = UDim.new(0, 10)

-- Button Functionality
CloseButton.MouseButton1Click:Connect(function()
    disableCustomIdle() -- Clean up before closing
    ScreenGui:Destroy()
end)

local minimized = false
MinimizeButton.MouseButton1Click:Connect(function()
    minimized = not minimized
    if minimized then
        TweenService:Create(MainFrame, TweenInfo.new(0.3), {Size = UDim2.new(0, 800, 0, 40)}):Play()
        TabContainer.Visible = false
        ContentFrame.Visible = false
    else
        TweenService:Create(MainFrame, TweenInfo.new(0.3), {Size = UDim2.new(0, 800, 0, 600)}):Play()
        TabContainer.Visible = true
        ContentFrame.Visible = true
    end
end)

-- Smooth Entrance Animation
local function playEntranceAnimation()
    -- Start with GUI off-screen and transparent
    MainFrame.Position = UDim2.new(0.5, -400, 1.5, 0)
    MainFrame.Size = UDim2.new(0, 600, 0, 400)
    MainFrame.BackgroundTransparency = 1
    TopBar.BackgroundTransparency = 1
    TabContainer.BackgroundTransparency = 1
    ContentFrame.BackgroundTransparency = 1
    
    -- Entrance animation sequence
    local entranceTween1 = TweenService:Create(MainFrame, TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        Position = UDim2.new(0.5, -400, 0.5, -300),
        BackgroundTransparency = 0
    })
    
    local topBarTween = TweenService:Create(TopBar, TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        BackgroundTransparency = 0
    })
    
    local tabContainerTween = TweenService:Create(TabContainer, TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        BackgroundTransparency = 0
    })
    
    local contentFrameTween = TweenService:Create(ContentFrame, TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        BackgroundTransparency = 0
    })
    
    local sizeTween = TweenService:Create(MainFrame, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        Size = UDim2.new(0, 800, 0, 600)
    })
    
    entranceTween1:Play()
    topBarTween:Play()
    tabContainerTween:Play()
    contentFrameTween:Play()
    wait(0.3)
    sizeTween:Play()
    
    -- Animate tabs appearing one by one
    local tabDelay = 0
    for _, tab in pairs(tabs) do
        spawn(function()
            wait(tabDelay)
            tab.button.BackgroundTransparency = 1
            tab.button.Size = UDim2.new(1, -10, 0, 0)
            tab.icon.TextTransparency = 1
            tab.name.TextTransparency = 1
            
            local tabTween = TweenService:Create(tab.button, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                Size = UDim2.new(1, -10, 0, 60),
                BackgroundTransparency = 0
            })
            
            local iconTween = TweenService:Create(tab.icon, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                TextTransparency = 0
            })
            
            local nameTween = TweenService:Create(tab.name, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
                TextTransparency = 0.5
            })
            
            tabTween:Play()
            iconTween:Play()
            nameTween:Play()
        end)
        tabDelay = tabDelay + 0.1
    end
    
    -- Glow effect animation
    spawn(function()
        while MainFrame and MainFrame.Parent do
            local glowTween = TweenService:Create(MainFrameStroke, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(150, 100, 255)
            })
            glowTween:Play()
            glowTween.Completed:Wait()
            
            local glowTween2 = TweenService:Create(MainFrameStroke, TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
                Color = Color3.fromRGB(100, 150, 255)
            })
            glowTween2:Play()
            glowTween2.Completed:Wait()
        end
    end)
end

-- Initialize with first tab
switchTab("Executor")

-- Auto-resize content
for _, tab in pairs(tabs) do
    tab.content.ChildAdded:Connect(function()
        wait() -- Wait for layout to update
        tab.content.CanvasSize = UDim2.new(0, 0, 0, tab.content.UIListLayout.AbsoluteContentSize.Y + 40)
    end)
end

-- Play entrance animation
spawn(playEntranceAnimation)

-- Success messages
print("🎉 Universal GUI v3.0 - Advanced Edition loaded successfully!")
print("✨ Features: Custom Cursor, ESP, Spin, Enhanced Animations, Gradients")
print("🎭 Your custom idle animation ID: 113584944257171")
print("📋 Available tabs: Executor, Scripts, Animations, Visuals, Movement, Settings, Player")
print("🚀 Enjoy the enhanced experience!")

Features & Information

well, it got sum shi in it ionk 🤷🏾‍♂️ (anyone can do this btw, ts aint special)

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts