-- Owned By ProScripts local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local flying = false local flySpeed = 50 local flyConnection local danceTrack local rolling = false local rollSpeed = 100 local rollConnection local rollGyro local rollVel -- notification on load game.StarterGui:SetCore("SendNotification", { Title = "ProScripts"; Text = "Script By @ProScripts — hope you enjoy"; Duration = 5; }) -- main GUI local gui = Instance.new("ScreenGui") gui.Name = "ProCommandUI" gui.ResetOnSpawn = false gui.Parent = PlayerGui -- main frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 450, 0, 50) frame.Position = UDim2.new(0.5, -225, 0.9, 0) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BackgroundTransparency = 0.2 frame.BorderSizePixel = 0 frame.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = frame -- command TextBox local box = Instance.new("TextBox") box.Size = UDim2.new(1, -20, 1, 0) box.Position = UDim2.new(0, 10, 0, 0) box.BackgroundTransparency = 1 box.PlaceholderText = "Enter command (type 'help' for list)" box.TextColor3 = Color3.fromRGB(255, 255, 255) box.TextScaled = true box.Font = Enum.Font.GothamBold box.ClearTextOnFocus = true box.Parent = frame -- help menu local helpFrame = Instance.new("Frame") helpFrame.Size = UDim2.new(0, 300, 0, 200) helpFrame.Position = UDim2.new(0.5, -150, 0.3, 0) helpFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) helpFrame.BorderSizePixel = 0 helpFrame.Visible = false helpFrame.Parent = gui local helpCorner = Instance.new("UICorner") helpCorner.CornerRadius = UDim.new(0, 12) helpCorner.Parent = helpFrame local helpTitle = Instance.new("TextLabel") helpTitle.Size = UDim2.new(1, 0, 0, 40) helpTitle.Position = UDim2.new(0, 0, 0, 0) helpTitle.BackgroundTransparency = 1 helpTitle.Text = "Command Help" helpTitle.TextColor3 = Color3.fromRGB(0, 255, 127) helpTitle.TextScaled = true helpTitle.Font = Enum.Font.GothamBold helpTitle.Parent = helpFrame local helpText = Instance.new("TextLabel") helpText.Size = UDim2.new(1, -20, 1, -40) helpText.Position = UDim2.new(0, 10, 0, 40) helpText.BackgroundTransparency = 1 helpText.TextColor3 = Color3.fromRGB(255, 255, 255) helpText.TextWrapped = true helpText.Text = [[Available commands: esp all → Highlight all players esp playername → Highlight specific player unesp all → Remove highlights from all unesp playername → Remove highlight from player help → Show this help menu spin 360 → idk wth is this fly on → enable fly dont look funny fly off → disable fly roll on → enables rolling mode (character spins/rolls and moves faster) roll off → disables rolling mode and returns to normal movement dance → normal speed dance 2 → twice as fast dance 0.5 → half speed ]] helpText.TextScaled = false helpText.Font = Enum.Font.Gotham helpText.Parent = helpFrame -- highlight helpers local function highlightCharacter(char) if char:FindFirstChildOfClass("Highlight") then return end local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(0, 255, 127) h.OutlineColor = Color3.fromRGB(255, 255, 255) h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop h.Parent = char end local function removeHighlights(char) for _, v in ipairs(char:GetChildren()) do if v:IsA("Highlight") then v:Destroy() end end end local function setupESP(p) p.CharacterAdded:Connect(function(char) highlightCharacter(char) end) if p.Character then highlightCharacter(p.Character) end end local function removeESP(p) p.CharacterAdded:Connect(function(char) removeHighlights(char) end) if p.Character then removeHighlights(p.Character) end end local function runCommand(cmd) local args = string.split(cmd:lower(), " ") local command = args[1] local target = args[2] if command == "help" then helpFrame.Visible = not helpFrame.Visible return end if not command then return end if command == "esp" and target then if target == "all" then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer then setupESP(plr) end end else local p = Players:FindFirstChild(target) if p and p ~= LocalPlayer then setupESP(p) end end elseif command == "fly" and target then if target == "on" and not flying and LocalPlayer.Character then local char = LocalPlayer.Character local hrp = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") if hrp and hum then hum.PlatformStand = true flying = true local UIS = game:GetService("UserInputService") local runService = game:GetService("RunService") local velocity = Vector3.new(0,0,0) flyConnection = runService.RenderStepped:Connect(function() if not flying then return end local moveDir = Vector3.new(0,0,0) if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + hrp.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - hrp.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - hrp.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + hrp.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then moveDir = moveDir + Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir = moveDir - Vector3.new(0,1,0) end hrp.Velocity = moveDir.Unit * flySpeed end) end elseif target == "off" and flying and LocalPlayer.Character then local char = LocalPlayer.Character local hum = char:FindFirstChild("Humanoid") if hum then hum.PlatformStand = false end flying = false if flyConnection then flyConnection:Disconnect() flyConnection = nil end end elseif command == "roll" and target then if target == "on" and LocalPlayer.Character and not rolling then local char = LocalPlayer.Character local hrp = char:WaitForChild("HumanoidRootPart") local hum = char:WaitForChild("Humanoid") hum.PlatformStand = true rolling = true local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local gyro = Instance.new("BodyGyro") gyro.MaxTorque = Vector3.new(1e5,1e5,1e5) gyro.P = 2000 gyro.CFrame = hrp.CFrame gyro.Parent = hrp local vel = Instance.new("BodyVelocity") vel.MaxForce = Vector3.new(1e5,1e5,1e5) vel.Velocity = Vector3.new(0,0,0) vel.Parent = hrp rollConnection = RunService.RenderStepped:Connect(function() if not rolling then return end local dir = Vector3.new() if UIS:IsKeyDown(Enum.KeyCode.W) then dir = dir + hrp.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then dir = dir - hrp.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then dir = dir - hrp.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then dir = dir + hrp.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then dir = dir - Vector3.new(0,1,0) end if dir.Magnitude > 0 then vel.Velocity = dir.Unit * rollSpeed gyro.CFrame = CFrame.lookAt(hrp.Position, hrp.Position + dir) else vel.Velocity = Vector3.new(0,0,0) end end) elseif target == "off" and rolling and LocalPlayer.Character then local char = LocalPlayer.Character local hum = char:FindFirstChild("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if hum then hum.PlatformStand = false end rolling = false if rollConnection then rollConnection:Disconnect() rollConnection = nil end if hrp then for _, v in ipairs(hrp:GetChildren()) do if v:IsA("BodyGyro") or v:IsA("BodyVelocity") then v:Destroy() end end end end elseif command == "unesp" and target then if target == "all" then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer then removeESP(plr) end end else local p = Players:FindFirstChild(target) if p and p ~= LocalPlayer then removeESP(p) end end elseif command == "dance" then local speed = tonumber(args[2]) or 1 -- default 1 if not specified if LocalPlayer.Character then local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum then if danceTrack then danceTrack:Stop() danceTrack:Destroy() end local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://507771019" -- default Roblox dance danceTrack = hum:LoadAnimation(anim) danceTrack.Priority = Enum.AnimationPriority.Action danceTrack:Play() danceTrack:AdjustSpeed(speed) end end elseif command == "spin" and target then local amount = tonumber(target) if amount and LocalPlayer.Character then local hrp = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if hrp then local totalRotation = 0 local step = 10 local runService = game:GetService("RunService") local conn conn = runService.RenderStepped:Connect(function() if totalRotation >= amount then conn:Disconnect() return end hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(step), 0) totalRotation = totalRotation + step end) end end end end -- textbox connection box.FocusLost:Connect(function(enterPressed) if enterPressed and box.Text ~= "" then runCommand(box.Text) box.Text = "" end end) -- close button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -35, 0, 5) -- top-right corner closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextScaled = true closeBtn.Parent = helpFrame closeBtn.MouseButton1Click:Connect(function() helpFrame.Visible = false end) -- auto ESP for new players Players.PlayerAdded:Connect(function(p) p.CharacterAdded:Connect(function(char) -- do nothing automatically, wait for commands end) end)