-- Script Hub using Fluent UI Library with Fixed Fly UI and Updated Scripts -- Loads popular scripts and toggles Fly UI in Tools tab -- Place this in a LocalScript or execute via your Roblox executor -- Load Fluent UI Library with error handling local success, Fluent = pcall(function() return loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() end) if not success then game.StarterGui:SetCore("SendNotification", { Title = "Error", Text = "Failed to load Fluent UI Library. Check your executor or internet.", Duration = 5 }) return end -- Initialize Fluent Window local Window = Fluent:CreateWindow({ Title = "Ultimate Script Hub", SubTitle = "Execute Popular Scripts", TabWidth = 120, Size = UDim2.new(0, 500, 0, 400), Theme = "Dark", Acrylic = true, MinimizeKey = Enum.KeyCode.RightControl }) -- Notify on successful load Fluent:Notify({ Title = "Script Hub Loaded", Content = "Select a script or tool to use.", Duration = 3 }) -- Main Scripts Tab local successTab, ScriptsTab = pcall(function() return Window:AddTab({ Title = "Scripts", Icon = "code" }) end) if not successTab then game.StarterGui:SetCore("SendNotification", { Title = "Error", Text = "Failed to create Scripts tab.", Duration = 5 }) return end -- Add Script Button with Enhanced Error Handling local function addScriptButton(tab, name, description, url) local buttonSuccess, _ = pcall(function() tab:AddButton({ Title = name, Description = description, Callback = function() local loadSuccess, result = pcall(function() local scriptContent = game:HttpGet(url) if not scriptContent or scriptContent == "" then error("Empty or invalid script content") end local scriptFunc = loadstring(scriptContent) if not scriptFunc then error("Failed to compile script: nil returned") end scriptFunc() end) if loadSuccess then Fluent:Notify({ Title = name .. " Loaded", Content = name .. " executed successfully!", Duration = 3 }) else Fluent:Notify({ Title = "Error", Content = "Failed to load " .. name .. ": " .. tostring(result), Duration = 5 }) end end }) end) if not buttonSuccess then Fluent:Notify({ Title = "Error", Content = "Failed to add button for " .. name, Duration = 5 }) end end -- Popular Scripts (Verified and Updated) addScriptButton( ScriptsTab, "Infinite Yield", "Admin commands with extensive features", "https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source" ) addScriptButton( ScriptsTab, "Orca Hub", "Free universal script hub", "https://raw.githubusercontent.com/richie0866/orca/master/public/snapshot.lua" ) addScriptButton( ScriptsTab, "Owl Hub", "Supports 30+ games with cheats", "https://raw.githubusercontent.com/CriShoux/OwlHub/master/OwlHub.txt" ) addScriptButton( ScriptsTab, "Dark Dex", "Advanced script explorer", "https://raw.githubusercontent.com/infyiff/backup/main/dex.lua" ) addScriptButton( ScriptsTab, "SimpleSpy", "Lightweight remote event spy", "https://raw.githubusercontent.com/exxtremestuffs/SimpleSpySource/master/SimpleSpy.lua" ) addScriptButton( ScriptsTab, "V.G Hub", "Multi-game hub with various exploits", "https://raw.githubusercontent.com/1201for/V.G-Hub/main/V.Ghub" ) addScriptButton( ScriptsTab, "Hydroxide", "Remote spy and script injector", "https://raw.githubusercontent.com/Upbolt/Hydroxide/master/initiator.lua" ) addScriptButton( ScriptsTab, "Eagle Hub", "Popular hub for multiple games", "https://raw.githubusercontent.com/LoomianLegacyAlways/Eagle-Hub/main/Eagle%20Hub" ) addScriptButton( ScriptsTab, "Fate's Admin", "Command-based admin script", "https://raw.githubusercontent.com/fatesc/fates-admin/main/main.lua" ) -- Tools Tab local ToolsTab = Window:AddTab({ Title = "Tools", Icon = "wrench" }) -- Fly UI Integration local function createFlyUI() local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") local camera = workspace.CurrentCamera -- Fly UI GUI Setup local gui = Instance.new("ScreenGui") gui.Name = "FlyUI" gui.ResetOnSpawn = false gui.Enabled = false -- Start hidden gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 150) frame.Position = UDim2.new(0, 20, 0, 20) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BackgroundTransparency = 0.3 frame.Parent = gui local uicorner = Instance.new("UICorner") uicorner.CornerRadius = UDim.new(0, 8) uicorner.Parent = frame -- Drag Bar local dragBar = Instance.new("Frame") dragBar.Size = UDim2.new(0, 145, 0, 20) dragBar.Position = UDim2.new(0, 15, 0, 5) dragBar.BackgroundColor3 = Color3.fromRGB(40, 40, 40) dragBar.Parent = frame local dragCorner = Instance.new("UICorner") dragCorner.CornerRadius = UDim.new(0, 5) dragCorner.Parent = dragBar local dragLabel = Instance.new("TextLabel") dragLabel.Size = UDim2.new(1, 0, 1, 0) dragLabel.BackgroundTransparency = 1 dragLabel.Text = "Drag" dragLabel.TextColor3 = Color3.fromRGB(200, 200, 200) dragLabel.TextSize = 12 dragLabel.Font = Enum.Font.SourceSans dragLabel.Parent = dragBar -- Minimize Button local minimizeButton = Instance.new("TextButton") minimizeButton.Size = UDim2.new(0, 25, 0, 25) minimizeButton.Position = UDim2.new(1, -30, 0, 5) minimizeButton.Text = "-" minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) minimizeButton.TextSize = 14 minimizeButton.Parent = frame local minimizeCorner = Instance.new("UICorner") minimizeCorner.CornerRadius = UDim.new(0, 5) minimizeCorner.Parent = minimizeButton -- Fly Toggle Button local flyButton = Instance.new("TextButton") flyButton.Size = UDim2.new(0, 170, 0, 40) flyButton.Position = UDim2.new(0, 15, 0, 35) flyButton.Text = "Fly: OFF" flyButton.TextColor3 = Color3.fromRGB(255, 255, 255) flyButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) flyButton.TextSize = 16 flyButton.Parent = frame local flyCorner = Instance.new("UICorner") flyCorner.CornerRadius = UDim.new(0, 5) flyCorner.Parent = flyButton -- No-Clip Toggle Button local noClipButton = Instance.new("TextButton") noClipButton.Size = UDim2.new(0, 170, 0, 40) noClipButton.Position = UDim2.new(0, 15, 0, 80) noClipButton.Text = "No-Clip: OFF" noClipButton.TextColor3 = Color3.fromRGB(255, 255, 255) noClipButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) noClipButton.TextSize = 16 noClipButton.Parent = frame local noClipCorner = Instance.new("UICorner") noClipCorner.CornerRadius = UDim.new(0, 5) noClipCorner.Parent = noClipButton -- Fly Speed Slider local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(0, 170, 0, 20) speedLabel.Position = UDim2.new(0, 15, 0, 120) speedLabel.Text = "Speed: 50" speedLabel.BackgroundTransparency = 1 speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255) speedLabel.TextSize = 14 speedLabel.Parent = frame local sliderFrame = Instance.new("Frame") sliderFrame.Size = UDim2.new(0, 170, 0, 10) sliderFrame.Position = UDim2.new(0, 15, 0, 140) sliderFrame.BackgroundColor3 = Color3.fromRGB(70, 70, 70) sliderFrame.Parent = frame local sliderCorner = Instance.new("UICorner") sliderCorner.CornerRadius = UDim.new(0, 5) sliderCorner.Parent = sliderFrame local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new(0.5, 0, 1, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(100, 100, 255) sliderFill.Parent = sliderFrame local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(0, 5) fillCorner.Parent = sliderFill -- Dragging Logic local dragging = false local dragStart = nil local startPos = nil dragBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart local newPos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) frame.Position = newPos end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -- Minimize/Maximize Logic local isMinimized = false local originalSize = frame.Size minimizeButton.MouseButton1Click:Connect(function() isMinimized = not isMinimized minimizeButton.Text = isMinimized and "+" or "-" local targetSize = isMinimized and UDim2.new(0, 200, 0, 30) or originalSize TweenService:Create(frame, TweenInfo.new(0.3), {Size = targetSize}):Play() dragBar.Visible = not isMinimized flyButton.Visible = not isMinimized noClipButton.Visible = not isMinimized speedLabel.Visible = not isMinimized sliderFrame.Visible = not isMinimized end) -- Fly Variables local isFlying = false local isNoClip = false local flySpeed = 50 local bodyVelocity = nil local bodyGyro = nil local moveDirection = Vector3.new(0, 0, 0) -- Fly Function local function startFlying() if not isFlying then isFlying = true flyButton.Text = "Fly: ON" flyButton.BackgroundColor3 = Color3.fromRGB(60, 100, 60) humanoid.PlatformStand = true humanoid.WalkSpeed = 0 bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = rootPart bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(4000, 4000, 4000) bodyGyro.CFrame = camera.CFrame bodyGyro.Parent = rootPart end end local function stopFlying() if isFlying then isFlying = false flyButton.Text = "Fly: OFF" flyButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) humanoid.PlatformStand = false humanoid.WalkSpeed = 16 if bodyVelocity then bodyVelocity:Destroy() bodyVelocity = nil end if bodyGyro then bodyGyro:Destroy() bodyGyro = nil end end end -- No-Clip Function local function setNoClip(state) isNoClip = state noClipButton.Text = "No-Clip: " .. (state and "ON" or "OFF") noClipButton.BackgroundColor3 = state and Color3.fromRGB(60, 100, 60) or Color3.fromRGB(50, 50, 50) for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = not state end end end -- Fly Movement RunService.RenderStepped:Connect(function() if isFlying and bodyVelocity and bodyGyro then bodyGyro.CFrame = camera.CFrame local velocity = camera.CFrame:VectorToWorldSpace(moveDirection * flySpeed) bodyVelocity.Velocity = velocity end end) -- Input Handling local inputStates = {} UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if isFlying then if input.KeyCode == Enum.KeyCode.W then inputStates.W = true elseif input.KeyCode == Enum.KeyCode.S then inputStates.S = true elseif input.KeyCode == Enum.KeyCode.A then inputStates.A = true elseif input.KeyCode == Enum.KeyCode.D then inputStates.D = true elseif input.KeyCode == Enum.KeyCode.Space then inputStates.Space = true elseif input.KeyCode == Enum.KeyCode.LeftShift then inputStates.LeftShift = true end end end) UserInputService.InputEnded:Connect(function(input) if isFlying then if input.KeyCode == Enum.KeyCode.W then inputStates.W = false elseif input.KeyCode == Enum.KeyCode.S then inputStates.S = false elseif input.KeyCode == Enum.KeyCode.A then inputStates.A = false elseif input.KeyCode == Enum.KeyCode.D then inputStates.D = false elseif input.KeyCode == Enum.KeyCode.Space then inputStates.Space = false elseif input.KeyCode == Enum.KeyCode.LeftShift then inputStates.LeftShift = false end end end) RunService.Heartbeat:Connect(function() if isFlying then moveDirection = Vector3.new( (inputStates.A and -1 or 0) + (inputStates.D and 1 or 0), (inputStates.Space and 1 or 0) + (inputStates.LeftShift and -1 or 0), (inputStates.W and -1 or 0) + (inputStates.S and 1 or 0) ) end end) -- Button Connections flyButton.MouseButton1Click:Connect(function() if isFlying then stopFlying() else startFlying() end end) noClipButton.MouseButton1Click:Connect(function() setNoClip(not isNoClip) end) -- Speed Slider Logic local sliderDragging = false sliderFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderDragging = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderDragging = false end end) UserInputService.InputChanged:Connect(function(input) if sliderDragging and input.UserInputType == Enum.UserInputType.MouseMovement then local mousePos = UserInputService:GetMouseLocation() local sliderPos = sliderFrame.AbsolutePosition local sliderWidth = sliderFrame.AbsoluteSize.X local relativePos = math.clamp((mousePos.X - sliderPos.X) / sliderWidth, 0, 1) flySpeed = 20 + relativePos * 130 speedLabel.Text = "Speed: " .. math.floor(flySpeed) sliderFill.Size = UDim2.new(relativePos, 0, 1, 0) end end) -- Cleanup on character reset player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoid = character:WaitForChild("Humanoid") rootPart = character:WaitForChild("HumanoidRootPart") stopFlying() setNoClip(false) end) -- Function to toggle Fly UI visibility local function toggleFlyUI() gui.Enabled = not gui.Enabled Fluent:Notify({ Title = "Fly UI", Content = gui.Enabled and "Fly UI opened!" or "Fly UI closed!", Duration = 3 }) end -- Return toggle function and GUI for management return toggleFlyUI, gui end -- Simple Fly Button in Tools Tab local flyUIToggle = nil local flyUIGui = nil ToolsTab:AddButton({ Title = "Simple Fly", Description = "Toggle custom Fly UI with no-clip and speed controls", Callback = function() local success, result = pcall(function() if not flyUIToggle then -- Create Fly UI if it doesn't exist flyUIToggle, flyUIGui = createFlyUI() flyUIGui.Enabled = true -- Ensure it opens on first click Fluent:Notify({ Title = "Fly UI", Content = "Fly UI created and opened!", Duration = 3 }) else -- Toggle existing Fly UI flyUIToggle() end end) if not success then Fluent:Notify({ Title = "Error", Content = "Failed to load Fly UI: " .. tostring(result), Duration = 5 }) end end }) -- Settings Tab local SettingsTab = Window:AddTab({ Title = "Settings", Icon = "settings" }) SettingsTab:AddToggle({ Title = "Dark Mode", Description = "Toggle between light and dark theme", Default = true, Callback = function(value) Fluent.Options.Theme = value and "Dark" or "Light" Fluent:Notify({ Title = "Theme Changed", Content = "Theme set to " .. (value and "Dark" or "Light"), Duration = 3 }) end }) SettingsTab:AddButton({ Title = "Unload Hub", Description = "Close the script hub and Fly UI", Callback = function() -- Destroy Fly UI if it exists if flyUIGui then flyUIGui:Destroy() flyUIToggle = nil flyUIGui = nil end Window:Destroy() game.StarterGui:SetCore("SendNotification", { Title = "Unloaded", Text = "Script Hub and Fly UI have been closed.", Duration = 3 }) end }) -- Debugging Notification Fluent:Notify({ Title = "UI Initialized", Content = "If tabs/buttons or Fly UI are missing, check your executor or try again.", Duration = 5 })