-- LocalScript inside StarterGui > ScreenGui local ScreenGui = Instance.new("ScreenGui", game.Players.LocalPlayer:WaitForChild("PlayerGui")) ScreenGui.Name = "ScriptHub" -- Create Main Frame local HubFrame = Instance.new("Frame") HubFrame.Size = UDim2.new(0, 250, 0, 350) HubFrame.Position = UDim2.new(0.5, -125, 0.5, -175) HubFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) HubFrame.BorderSizePixel = 0 HubFrame.Parent = ScreenGui -- Draggable Top Bar local TopBar = Instance.new("Frame") TopBar.Size = UDim2.new(1, 0, 0, 30) TopBar.BackgroundColor3 = Color3.fromRGB(35, 35, 35) TopBar.BorderSizePixel = 0 TopBar.Parent = HubFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -30, 1, 0) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Script Hub" Title.TextColor3 = Color3.new(1, 1, 1) Title.TextSize = 18 Title.Font = Enum.Font.SourceSansBold Title.Parent = TopBar -- Close Button local CloseButton = Instance.new("TextButton") CloseButton.Size = UDim2.new(0, 25, 1, 0) CloseButton.Position = UDim2.new(1, -25, 0, 0) CloseButton.Text = "X" CloseButton.TextColor3 = Color3.new(1, 1, 1) CloseButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0) CloseButton.BorderSizePixel = 0 CloseButton.Parent = TopBar CloseButton.MouseButton1Click:Connect(function() HubFrame.Visible = false end) -- Utility Function to Create Buttons local function createButton(name, position, callback) local Button = Instance.new("TextButton") Button.Size = UDim2.new(0.9, 0, 0, 30) Button.Position = UDim2.new(0.05, 0, position, 0) Button.BackgroundColor3 = Color3.fromRGB(55, 55, 55) Button.TextColor3 = Color3.new(1, 1, 1) Button.Text = name Button.Font = Enum.Font.SourceSans Button.TextSize = 18 Button.Parent = HubFrame Button.MouseButton1Click:Connect(callback) return Button end -- Speed Boost createButton("Speed Boost", 0.15, function() local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() character:WaitForChild("Humanoid").WalkSpeed = 50 -- Set desired speed here end) -- Jump Boost createButton("Jump Boost", 0.3, function() local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() character:WaitForChild("Humanoid").JumpPower = 100 -- Set desired jump power here end) -- Fly Functionality local isFlying = false local flySpeed = 50 -- Adjust the fly speed here local bodyGyro, bodyVelocity createButton("Toggle Fly", 0.45, function() local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") if isFlying then -- Stop flying isFlying = false if bodyGyro then bodyGyro:Destroy() end if bodyVelocity then bodyVelocity:Destroy() end humanoid.PlatformStand = false else -- Start flying isFlying = true humanoid.PlatformStand = true -- BodyGyro to stabilize and orient the character bodyGyro = Instance.new("BodyGyro") bodyGyro.P = 9e4 bodyGyro.Parent = rootPart -- BodyVelocity to control flying movement bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(1e4, 1e4, 1e4) bodyVelocity.Parent = rootPart -- Flying controls game:GetService("RunService").RenderStepped:Connect(function() if isFlying then local camera = workspace.CurrentCamera bodyGyro.CFrame = camera.CFrame -- Orient towards the camera's look direction local moveDirection = Vector3.new(0, 0, 0) -- Check movement keys if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + camera.CFrame.LookVector end if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - camera.CFrame.LookVector end if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - camera.CFrame.RightVector end if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + camera.CFrame.RightVector end -- Apply movement direction and speed bodyVelocity.Velocity = moveDirection * flySpeed end end) end end) -- Toggle Invisibility local isInvisible = false createButton("Toggle Invisibility", 0.6, function() local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") or part:IsA("Decal") then part.Transparency = isInvisible and 0 or 1 end end isInvisible = not isInvisible end) -- Custom Script Input Box local ScriptBox = Instance.new("TextBox") ScriptBox.Size = UDim2.new(0.9, 0, 0, 30) ScriptBox.Position = UDim2.new(0.05, 0, 0.75, 0) ScriptBox.BackgroundColor3 = Color3.fromRGB(35, 35, 35) ScriptBox.TextColor3 = Color3.new(1, 1, 1) ScriptBox.PlaceholderText = "Enter custom script..." ScriptBox.Font = Enum.Font.SourceSans ScriptBox.TextSize = 16 ScriptBox.ClearTextOnFocus = false ScriptBox.Parent = HubFrame -- Execute Script Button local ExecuteButton = Instance.new("TextButton") ExecuteButton.Size = UDim2.new(0.9, 0, 0, 30) ExecuteButton.Position = UDim2.new(0.05, 0, 0.85, 0) ExecuteButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) ExecuteButton.TextColor3 = Color3.new(1, 1, 1) ExecuteButton.Text = "Execute Script" ExecuteButton.Font = Enum.Font.SourceSans ExecuteButton.TextSize = 18 ExecuteButton.Parent = HubFrame -- Execute custom script ExecuteButton.MouseButton1Click:Connect(function() local scriptCode = ScriptBox.Text local func, errorMessage = loadstring(scriptCode) if func then -- Safely execute the script to prevent errors from breaking the hub pcall(func) else warn("Error in custom script:", errorMessage) end end) -- Draggable Frame Logic local dragging local dragInput local dragStart local startPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = HubFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TopBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) game:GetService("UserInputService").InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart HubFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)