-- PVOT Menu Script -- [For educational purposes] local Player = game:GetService("Players").LocalPlayer local Mouse = Player:GetMouse() local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") -- Create main GUI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "PVOTMenu" ScreenGui.Parent = game:GetService("CoreGui") or Player:FindFirstChildOfClass("PlayerGui") local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 400, 0, 500) MainFrame.Position = UDim2.new(0.5, -200, 0.5, -250) MainFrame.AnchorPoint = Vector2.new(0.5, 0.5) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) MainFrame.BorderSizePixel = 0 MainFrame.Visible = false MainFrame.Parent = ScreenGui -- Galaxy background effect local Galaxy = Instance.new("Frame") Galaxy.Name = "Galaxy" Galaxy.Size = UDim2.new(1, 0, 1, 0) Galaxy.BackgroundColor3 = Color3.fromRGB(10, 5, 20) Galaxy.BorderSizePixel = 0 Galaxy.ZIndex = 0 Galaxy.Parent = MainFrame -- Create stars for galaxy effect for i = 1, 200 do local Star = Instance.new("Frame") Star.Name = "Star"..i Star.Size = UDim2.new(0, math.random(1, 3), 0, math.random(1, 3)) Star.Position = UDim2.new(0, math.random(0, 400), 0, math.random(0, 500)) Star.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Star.BorderSizePixel = 0 Star.ZIndex = 1 -- Make some stars twinkle if math.random(1, 5) == 1 then spawn(function() while true do Star.BackgroundTransparency = math.random(0, 100)/100 wait(math.random(0.1, 1)) end end) end Star.Parent = Galaxy end -- Title local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Size = UDim2.new(1, 0, 0, 50) Title.Position = UDim2.new(0, 0, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "PVOT" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.SciFi Title.TextSize = 30 Title.ZIndex = 2 Title.Parent = MainFrame -- Close button local CloseButton = Instance.new("TextButton") CloseButton.Name = "CloseButton" CloseButton.Size = UDim2.new(0, 30, 0, 30) CloseButton.Position = UDim2.new(1, -35, 0, 5) CloseButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255) CloseButton.Text = "X" CloseButton.Font = Enum.Font.SciFi CloseButton.TextSize = 20 CloseButton.ZIndex = 2 CloseButton.Parent = MainFrame -- Notification for right shift to open local OpenNotification = Instance.new("TextLabel") OpenNotification.Name = "OpenNotification" OpenNotification.Size = UDim2.new(0, 200, 0, 30) OpenNotification.Position = UDim2.new(0.5, -100, 1, 10) OpenNotification.AnchorPoint = Vector2.new(0.5, 0) OpenNotification.BackgroundColor3 = Color3.fromRGB(30, 30, 40) OpenNotification.TextColor3 = Color3.fromRGB(255, 255, 255) OpenNotification.Text = "Press Right Shift to Open" OpenNotification.Font = Enum.Font.SciFi OpenNotification.TextSize = 16 OpenNotification.ZIndex = 2 OpenNotification.Visible = true OpenNotification.Parent = ScreenGui -- Tab system local TabButtons = Instance.new("Frame") TabButtons.Name = "TabButtons" TabButtons.Size = UDim2.new(1, 0, 0, 40) TabButtons.Position = UDim2.new(0, 0, 0, 50) TabButtons.BackgroundTransparency = 1 TabButtons.ZIndex = 2 TabButtons.Parent = MainFrame local TeleportTabButton = Instance.new("TextButton") TeleportTabButton.Name = "TeleportTabButton" TeleportTabButton.Size = UDim2.new(0.33, 0, 1, 0) TeleportTabButton.Position = UDim2.new(0, 0, 0, 0) TeleportTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) TeleportTabButton.TextColor3 = Color3.fromRGB(255, 255, 255) TeleportTabButton.Text = "Teleport" TeleportTabButton.Font = Enum.Font.SciFi TeleportTabButton.TextSize = 16 TeleportTabButton.ZIndex = 2 TeleportTabButton.Parent = TabButtons local MovementTabButton = Instance.new("TextButton") MovementTabButton.Name = "MovementTabButton" MovementTabButton.Size = UDim2.new(0.33, 0, 1, 0) MovementTabButton.Position = UDim2.new(0.33, 0, 0, 0) MovementTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) MovementTabButton.TextColor3 = Color3.fromRGB(255, 255, 255) MovementTabButton.Text = "Movement" MovementTabButton.Font = Enum.Font.SciFi MovementTabButton.TextSize = 16 MovementTabButton.ZIndex = 2 MovementTabButton.Parent = TabButtons local SettingsTabButton = Instance.new("TextButton") SettingsTabButton.Name = "SettingsTabButton" SettingsTabButton.Size = UDim2.new(0.34, 0, 1, 0) SettingsTabButton.Position = UDim2.new(0.66, 0, 0, 0) SettingsTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) SettingsTabButton.TextColor3 = Color3.fromRGB(255, 255, 255) SettingsTabButton.Text = "Settings" SettingsTabButton.Font = Enum.Font.SciFi SettingsTabButton.TextSize = 16 SettingsTabButton.ZIndex = 2 SettingsTabButton.Parent = TabButtons -- Tab contents local TabContents = Instance.new("Frame") TabContents.Name = "TabContents" TabContents.Size = UDim2.new(1, -20, 1, -120) TabContents.Position = UDim2.new(0, 10, 0, 100) TabContents.BackgroundTransparency = 1 TabContents.ZIndex = 2 TabContents.Parent = MainFrame -- Teleport tab local TeleportTab = Instance.new("Frame") TeleportTab.Name = "TeleportTab" TeleportTab.Size = UDim2.new(1, 0, 1, 0) TeleportTab.BackgroundTransparency = 1 TeleportTab.Visible = true TeleportTab.ZIndex = 2 TeleportTab.Parent = TabContents local TeleportLabel = Instance.new("TextLabel") TeleportLabel.Name = "TeleportLabel" TeleportLabel.Size = UDim2.new(1, 0, 0, 30) TeleportLabel.Position = UDim2.new(0, 0, 0, 0) TeleportLabel.BackgroundTransparency = 1 TeleportLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TeleportLabel.Text = "Teleport to Player:" TeleportLabel.Font = Enum.Font.SciFi TeleportLabel.TextSize = 18 TeleportLabel.TextXAlignment = Enum.TextXAlignment.Left TeleportLabel.ZIndex = 2 TeleportLabel.Parent = TeleportTab local PlayerNameBox = Instance.new("TextBox") PlayerNameBox.Name = "PlayerNameBox" PlayerNameBox.Size = UDim2.new(1, 0, 0, 30) PlayerNameBox.Position = UDim2.new(0, 0, 0, 40) PlayerNameBox.BackgroundColor3 = Color3.fromRGB(40, 40, 60) PlayerNameBox.TextColor3 = Color3.fromRGB(255, 255, 255) PlayerNameBox.PlaceholderText = "Enter player username" PlayerNameBox.Font = Enum.Font.SciFi PlayerNameBox.TextSize = 16 PlayerNameBox.ZIndex = 2 PlayerNameBox.Parent = TeleportTab local TeleportButton = Instance.new("TextButton") TeleportButton.Name = "TeleportButton" TeleportButton.Size = UDim2.new(1, 0, 0, 40) TeleportButton.Position = UDim2.new(0, 0, 0, 80) TeleportButton.BackgroundColor3 = Color3.fromRGB(80, 40, 120) TeleportButton.TextColor3 = Color3.fromRGB(255, 255, 255) TeleportButton.Text = "TELEPORT" TeleportButton.Font = Enum.Font.SciFi TeleportButton.TextSize = 20 TeleportButton.ZIndex = 2 TeleportButton.Parent = TeleportTab -- Movement tab local MovementTab = Instance.new("Frame") MovementTab.Name = "MovementTab" MovementTab.Size = UDim2.new(1, 0, 1, 0) MovementTab.BackgroundTransparency = 1 MovementTab.Visible = false MovementTab.ZIndex = 2 MovementTab.Parent = TabContents -- Noclip local NoclipToggle = Instance.new("TextButton") NoclipToggle.Name = "NoclipToggle" NoclipToggle.Size = UDim2.new(1, 0, 0, 40) NoclipToggle.Position = UDim2.new(0, 0, 0, 0) NoclipToggle.BackgroundColor3 = Color3.fromRGB(60, 60, 80) NoclipToggle.TextColor3 = Color3.fromRGB(255, 255, 255) NoclipToggle.Text = "Noclip: OFF" NoclipToggle.Font = Enum.Font.SciFi NoclipToggle.TextSize = 18 NoclipToggle.ZIndex = 2 NoclipToggle.Parent = MovementTab local NoclipKeybind = Instance.new("TextButton") NoclipKeybind.Name = "NoclipKeybind" NoclipKeybind.Size = UDim2.new(0.5, 0, 0, 30) NoclipKeybind.Position = UDim2.new(0, 0, 0, 50) NoclipKeybind.BackgroundColor3 = Color3.fromRGB(40, 40, 60) NoclipKeybind.TextColor3 = Color3.fromRGB(255, 255, 255) NoclipKeybind.Text = "Keybind: N" NoclipKeybind.Font = Enum.Font.SciFi NoclipKeybind.TextSize = 16 NoclipKeybind.ZIndex = 2 NoclipKeybind.Parent = MovementTab -- Super Speed local SpeedToggle = Instance.new("TextButton") SpeedToggle.Name = "SpeedToggle" SpeedToggle.Size = UDim2.new(1, 0, 0, 40) SpeedToggle.Position = UDim2.new(0, 0, 0, 100) SpeedToggle.BackgroundColor3 = Color3.fromRGB(60, 60, 80) SpeedToggle.TextColor3 = Color3.fromRGB(255, 255, 255) SpeedToggle.Text = "Super Speed: OFF" SpeedToggle.Font = Enum.Font.SciFi SpeedToggle.TextSize = 18 SpeedToggle.ZIndex = 2 SpeedToggle.Parent = MovementTab local SpeedKeybind = Instance.new("TextButton") SpeedKeybind.Name = "SpeedKeybind" SpeedKeybind.Size = UDim2.new(0.5, 0, 0, 30) SpeedKeybind.Position = UDim2.new(0, 0, 0, 150) SpeedKeybind.BackgroundColor3 = Color3.fromRGB(40, 40, 60) SpeedKeybind.TextColor3 = Color3.fromRGB(255, 255, 255) SpeedKeybind.Text = "Keybind: B" SpeedKeybind.Font = Enum.Font.SciFi SpeedKeybind.TextSize = 16 SpeedKeybind.ZIndex = 2 SpeedKeybind.Parent = MovementTab -- Super Jump local JumpToggle = Instance.new("TextButton") JumpToggle.Name = "JumpToggle" JumpToggle.Size = UDim2.new(1, 0, 0, 40) JumpToggle.Position = UDim2.new(0, 0, 0, 200) JumpToggle.BackgroundColor3 = Color3.fromRGB(60, 60, 80) JumpToggle.TextColor3 = Color3.fromRGB(255, 255, 255) JumpToggle.Text = "Super Jump: OFF" JumpToggle.Font = Enum.Font.SciFi JumpToggle.TextSize = 18 JumpToggle.ZIndex = 2 JumpToggle.Parent = MovementTab -- Settings tab local SettingsTab = Instance.new("Frame") SettingsTab.Name = "SettingsTab" SettingsTab.Size = UDim2.new(1, 0, 1, 0) SettingsTab.BackgroundTransparency = 1 SettingsTab.Visible = false SettingsTab.ZIndex = 2 SettingsTab.Parent = TabContents local SettingsLabel = Instance.new("TextLabel") SettingsLabel.Name = "SettingsLabel" SettingsLabel.Size = UDim2.new(1, 0, 0, 30) SettingsLabel.Position = UDim2.new(0, 0, 0, 0) SettingsLabel.BackgroundTransparency = 1 SettingsLabel.TextColor3 = Color3.fromRGB(255, 255, 255) SettingsLabel.Text = "Settings:" SettingsLabel.Font = Enum.Font.SciFi SettingsLabel.TextSize = 18 SettingsLabel.TextXAlignment = Enum.TextXAlignment.Left SettingsLabel.ZIndex = 2 SettingsLabel.Parent = SettingsTab -- Variables local NoclipActive = false local NoclipKey = Enum.KeyCode.N local SpeedActive = false local SpeedKey = Enum.KeyCode.B local JumpActive = false local Debounce = false -- Animation function local function AnimateFrame(frame, startSize, endSize, duration) frame.Size = startSize frame.Visible = true local startTime = tick() local connection connection = RunService.Heartbeat:Connect(function() local elapsed = tick() - startTime local progress = math.min(elapsed / duration, 1) frame.Size = startSize:lerp(endSize, progress) if progress >= 1 then connection:Disconnect() end end) end -- Toggle menu function local function ToggleMenu() if Debounce then return end Debounce = true if MainFrame.Visible then -- Close animation AnimateFrame(MainFrame, MainFrame.Size, UDim2.new(0, 0, 0, 0), 0.2) wait(0.2) MainFrame.Visible = false OpenNotification.Visible = true else -- Open animation MainFrame.Visible = true OpenNotification.Visible = false AnimateFrame(MainFrame, UDim2.new(0, 0, 0, 0), UDim2.new(0, 400, 0, 500), 0.3) end Debounce = false end -- Right Shift to open menu UIS.InputBegan:Connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.RightShift then ToggleMenu() end end) -- Close button CloseButton.MouseButton1Click:Connect(function() ToggleMenu() end) -- Tab switching TeleportTabButton.MouseButton1Click:Connect(function() TeleportTab.Visible = true MovementTab.Visible = false SettingsTab.Visible = false TeleportTabButton.BackgroundColor3 = Color3.fromRGB(80, 40, 120) MovementTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) SettingsTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end) MovementTabButton.MouseButton1Click:Connect(function() TeleportTab.Visible = false MovementTab.Visible = true SettingsTab.Visible = false TeleportTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) MovementTabButton.BackgroundColor3 = Color3.fromRGB(80, 40, 120) SettingsTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end) SettingsTabButton.MouseButton1Click:Connect(function() TeleportTab.Visible = false MovementTab.Visible = false SettingsTab.Visible = true TeleportTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) MovementTabButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) SettingsTabButton.BackgroundColor3 = Color3.fromRGB(80, 40, 120) end) -- Teleport function TeleportButton.MouseButton1Click:Connect(function() local playerName = PlayerNameBox.Text if playerName == "" then return end local targetPlayer = nil for _, player in ipairs(game:GetService("Players"):GetPlayers()) do if string.lower(player.Name) == string.lower(playerName) or string.lower(player.DisplayName) == string.lower(playerName) then targetPlayer = player break end end if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then Player.Character:MoveTo(targetPlayer.Character.HumanoidRootPart.Position + Vector3.new(0, 0, -5)) else PlayerNameBox.Text = "Player not found!" wait(1) PlayerNameBox.Text = "" end end) -- Noclip toggle NoclipToggle.MouseButton1Click:Connect(function() NoclipActive = not NoclipActive NoclipToggle.Text = "Noclip: " .. (NoclipActive and "ON" or "OFF") end) -- Noclip keybind change NoclipKeybind.MouseButton1Click:Connect(function() NoclipKeybind.Text = "Press any key..." local input = UIS.InputBegan:Wait() if input.UserInputType == Enum.UserInputType.Keyboard then NoclipKey = input.KeyCode NoclipKeybind.Text = "Keybind: " .. tostring(input.KeyCode):gsub("Enum.KeyCode.", "") else NoclipKeybind.Text = "Keybind: " .. tostring(NoclipKey):gsub("Enum.KeyCode.", "") end end) -- Speed toggle SpeedToggle.MouseButton1Click:Connect(function() SpeedActive = not SpeedActive SpeedToggle.Text = "Super Speed: " .. (SpeedActive and "ON" or "OFF") if SpeedActive then Player.Character.Humanoid.WalkSpeed = 100 else Player.Character.Humanoid.WalkSpeed = 16 end end) -- Speed keybind change SpeedKeybind.MouseButton1Click:Connect(function() SpeedKeybind.Text = "Press any key..." local input = UIS.InputBegan:Wait() if input.UserInputType == Enum.UserInputType.Keyboard then SpeedKey = input.KeyCode SpeedKeybind.Text = "Keybind: " .. tostring(input.KeyCode):gsub("Enum.KeyCode.", "") else SpeedKeybind.Text = "Keybind: " .. tostring(SpeedKey):gsub("Enum.KeyCode.", "") end end) -- Jump toggle JumpToggle.MouseButton1Click:Connect(function() JumpActive = not JumpActive JumpToggle.Text = "Super Jump: " .. (JumpActive and "ON" or "OFF") end) -- Noclip keybind UIS.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == NoclipKey then NoclipActive = not NoclipActive NoclipToggle.Text = "Noclip: " .. (NoclipActive and "ON" or "OFF") end if input.KeyCode == SpeedKey then SpeedActive = not SpeedActive SpeedToggle.Text = "Super Speed: " .. (SpeedActive and "ON" or "OFF") if SpeedActive then Player.Character.Humanoid.WalkSpeed = 100 else Player.Character.Humanoid.WalkSpeed = 16 end end end) -- Noclip loop RunService.Stepped:Connect(function() if NoclipActive and Player.Character then for _, part in ipairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) -- Super jump loop RunService.Heartbeat:Connect(function() if JumpActive and Player.Character and Player.Character:FindFirstChild("Humanoid") then if UIS:IsKeyDown(Enum.KeyCode.Space) then Player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end) -- Initial setup Player.CharacterAdded:Connect(function(character) if SpeedActive then wait(1) -- Wait for humanoid to load if character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = 100 end end end)