-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- LocalScript: StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Stats = game:GetService("Stats") local LogService = game:GetService("LogService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -------------------------------------------------- -- GUI CREATION -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "DiagnosticsMenuUI" gui.ResetOnSpawn = false gui.Parent = playerGui local main = Instance.new("Frame") main.Size = UDim2.new(0, 380, 0, 520) main.Position = UDim2.new(0.5, -190, 0.5, -260) main.BackgroundColor3 = Color3.fromRGB(12, 15, 13) main.BorderSizePixel = 0 main.ClipsDescendants = false main.Parent = gui -- Opening Animation main.Size = UDim2.new(0, 0, 0, 0) main.Position = UDim2.new(0.5, 0, 0.5, 0) TweenService:Create(main, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(0, 380, 0, 520), Position = UDim2.new(0.5, -190, 0.5, -260) }):Play() local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 16) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(0, 180, 255) mainStroke.Thickness = 1.5 mainStroke.Transparency = 0.2 mainStroke.Parent = main -------------------------------------------------- -- TOOLTIP / INFO BUBBLE SYSTEM -------------------------------------------------- local tooltip = Instance.new("Frame") tooltip.Size = UDim2.new(0, 190, 0, 36) tooltip.Position = UDim2.new(1, 12, 0, 0) tooltip.BackgroundColor3 = Color3.fromRGB(18, 24, 30) tooltip.BorderSizePixel = 0 tooltip.Visible = false tooltip.Parent = main local tooltipCorner = Instance.new("UICorner") tooltipCorner.CornerRadius = UDim.new(0, 8) tooltipCorner.Parent = tooltip local tooltipStroke = Instance.new("UIStroke") tooltipStroke.Color = Color3.fromRGB(0, 180, 255) tooltipStroke.Thickness = 1 tooltipStroke.Transparency = 0.4 tooltipStroke.Parent = tooltip local tooltipText = Instance.new("TextLabel") tooltipText.Size = UDim2.new(1, -16, 1, 0) tooltipText.Position = UDim2.new(0, 8, 0, 0) tooltipText.BackgroundTransparency = 1 tooltipText.Font = Enum.Font.GothamMedium tooltipText.TextSize = 10 tooltipText.TextColor3 = Color3.fromRGB(210, 225, 235) tooltipText.TextWrapped = true tooltipText.TextXAlignment = Enum.TextXAlignment.Left tooltipText.Parent = tooltip local function showTooltip(element, description) element.MouseEnter:Connect(function() tooltipText.Text = description tooltip.Position = UDim2.new(1, 12, 0, element.Position.Y.Offset) tooltip.Visible = true tooltip.Size = UDim2.new(0, 0, 0, 0) tooltip.BackgroundTransparency = 1 tooltipText.TextTransparency = 1 tooltipStroke.Transparency = 1 TweenService:Create(tooltip, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(0, 190, 0, 36), BackgroundTransparency = 0 }):Play() TweenService:Create(tooltipText, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { TextTransparency = 0 }):Play() TweenService:Create(tooltipStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Transparency = 0.4 }):Play() end) element.MouseLeave:Connect(function() local outTween = TweenService:Create(tooltip, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1 }) TweenService:Create(tooltipText, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { TextTransparency = 1 }):Play() TweenService:Create(tooltipStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { Transparency = 1 }):Play() outTween:Play() outTween.Completed:Connect(function() if tooltip.Size.X.Offset == 0 then tooltip.Visible = false end end) end) end -------------------------------------------------- -- HEADER -------------------------------------------------- local header = Instance.new("TextButton") header.Size = UDim2.new(1, 0, 0, 42) header.BackgroundColor3 = Color3.fromRGB(16, 21, 24) header.BorderSizePixel = 0 header.AutoButtonColor = false header.Text = "" header.Parent = main local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 16) headerCorner.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -20, 1, 0) title.Position = UDim2.new(0, 15, 0, 0) title.BackgroundTransparency = 1 title.Text = "PRO DIAGNOSTICS HUB" title.RichText = true title.Font = Enum.Font.GothamBold title.TextSize = 13 title.TextColor3 = Color3.new(1, 1, 1) title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local credit = Instance.new("TextLabel") credit.Size = UDim2.new(1, -20, 0, 14) credit.Position = UDim2.new(0, 15, 1, -22) credit.BackgroundTransparency = 1 credit.Text = "Made by veryvare" credit.Font = Enum.Font.GothamMedium credit.TextSize = 10 credit.TextColor3 = Color3.fromRGB(90, 120, 135) credit.TextXAlignment = Enum.TextXAlignment.Left credit.Parent = main -- Dragging functionality local dragging, dragStart, startPosition header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPosition = main.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart main.Position = UDim2.new(startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -------------------------------------------------- -- CONTENT CONTAINER -------------------------------------------------- local contentContainer = Instance.new("Frame") contentContainer.Size = UDim2.new(1, 0, 1, -42) contentContainer.Position = UDim2.new(0, 0, 0, 42) contentContainer.BackgroundTransparency = 1 contentContainer.Parent = main -------------------------------------------------- -- BUTTON ANIMATION HELPER -------------------------------------------------- local function setupButtonAnimations(btn) local defaultSize = btn.Size local hoverSize = UDim2.new(defaultSize.X.Scale, defaultSize.X.Offset + 4, defaultSize.Y.Scale, defaultSize.Y.Offset + 2) btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = hoverSize }):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = defaultSize }):Play() end) btn.MouseButton1Down:Connect(function() TweenService:Create(btn, TweenInfo.new(0.1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = UDim2.new(defaultSize.X.Scale, defaultSize.X.Offset - 4, defaultSize.Y.Scale, defaultSize.Y.Offset - 2) }):Play() end) btn.MouseButton1Up:Connect(function() TweenService:Create(btn, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { Size = hoverSize }):Play() end) end -------------------------------------------------- -- PROFESSIONAL DIAGNOSTIC METRICS BOXES -------------------------------------------------- local function createInfoBox(posY, titleText) local box = Instance.new("Frame") box.Size = UDim2.new(1, -30, 0, 32) box.Position = UDim2.new(0, 15, 0, posY) box.BackgroundColor3 = Color3.fromRGB(16, 20, 24) box.Parent = contentContainer local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = box local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(25, 40, 50) stroke.Thickness = 1 stroke.Parent = box local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -16, 1, 0) label.Position = UDim2.new(0, 8, 0, 0) label.BackgroundTransparency = 1 label.Text = titleText .. ": --" label.Font = Enum.Font.GothamBold label.TextSize = 11 label.TextColor3 = Color3.fromRGB(0, 180, 255) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = box return box, label end local fpsBox, fpsLabel = createInfoBox(12, "LIVE FPS & FRAME TIME") showTooltip(fpsBox, "Displays current frames per second and render time.") local pingBox, pingLabel = createInfoBox(50, "NETWORK PING / LATENCY") showTooltip(pingBox, "Measures current connection delay to the server in milliseconds.") local memBox, memLabel = createInfoBox(88, "CLIENT MEMORY (RAM)") showTooltip(memBox, "Shows real-time memory usage consumed by your client.") local netBox, netLabel = createInfoBox(126, "NETWORK RECEIVE RATE") showTooltip(netBox, "Indicates incoming data stream speed from the server.") local plyBox, plyLabel = createInfoBox(164, "SERVER PLAYERS ACTIVE") showTooltip(plyBox, "Shows total player count currently connected to this session.") local errBox, errLabel = createInfoBox(202, "CLIENT SCRIPT ERRORS") showTooltip(errBox, "Monitors and logs any client-side script errors.") local gfxBox, gfxLabel = createInfoBox(240, "GRAPHICS QUALITY LEVEL") showTooltip(gfxBox, "Displays your current client graphics quality setting.") -- Real-time Pro Diagnostics Loop local errorCount = 0 LogService.MessageOut:Connect(function(msg, msgType) if msgType == Enum.MessageType.MessageError then errorCount = errorCount + 1 end end) local frameCount = 0 local lastUpdate = tick() RunService.RenderStepped:Connect(function(step) frameCount = frameCount + 1 local now = tick() pcall(function() if now - lastUpdate >= 0.5 then local fps = math.floor(frameCount / (now - lastUpdate)) local ms = math.floor(step * 1000 * 10) / 10 fpsLabel.Text = "FPS: " .. tostring(fps) .. " (" .. tostring(ms) .. " ms)" frameCount = 0 lastUpdate = now end local ping = math.floor(player:GetNetworkPing() * 1000) pingLabel.Text = "NETWORK PING: " .. tostring(ping) .. " ms" local mem = math.floor(Stats:GetTotalMemoryUsageMb()) memLabel.Text = "CLIENT MEMORY (RAM): " .. tostring(mem) .. " MB" local kbps = math.floor(Stats.DataReceiveKbps or 0) netLabel.Text = "NETWORK RECEIVE: " .. tostring(kbps) .. " KB/s" plyLabel.Text = "SERVER PLAYERS: " .. tostring(#Players:GetPlayers()) .. " / " .. tostring(Players.MaxPlayers) errLabel.Text = "CLIENT ERRORS: " .. tostring(errorCount) local quality = settings().Rendering.QualityLevel.Value gfxLabel.Text = "GRAPHICS QUALITY: Level " .. tostring(quality) end) end) -------------------------------------------------- -- UTILITY ACTIONS -------------------------------------------------- local clearLogBtn = Instance.new("TextButton") clearLogBtn.Size = UDim2.new(1, -30, 0, 32) clearLogBtn.Position = UDim2.new(0, 15, 0, 285) clearLogBtn.BackgroundColor3 = Color3.fromRGB(16, 22, 28) clearLogBtn.Text = "RESET ERROR COUNTER" clearLogBtn.Font = Enum.Font.GothamBold clearLogBtn.TextSize = 11 clearLogBtn.TextColor3 = Color3.fromRGB(255, 200, 0) clearLogBtn.Parent = contentContainer local clCorner = Instance.new("UICorner") clCorner.CornerRadius = UDim.new(0, 10) clCorner.Parent = clearLogBtn local clStroke = Instance.new("UIStroke") clStroke.Color = Color3.fromRGB(180, 140, 0) clStroke.Thickness = 1 clStroke.Transparency = 0.5 clStroke.Parent = clearLogBtn setupButtonAnimations(clearLogBtn) showTooltip(clearLogBtn, "Resets the tracked client error counter back to zero.") clearLogBtn.MouseButton1Click:Connect(function() errorCount = 0 clearLogBtn.Text = "COUNTER RESET!" task.delay(1.5, function() clearLogBtn.Text = "RESET ERROR COUNTER" end) end) -------------------------------------------------- -- UNLOAD BUTTON & CONFIRMATION POPUP SYSTEM -------------------------------------------------- local unloadBtn = Instance.new("TextButton") unloadBtn.Size = UDim2.new(1, -30, 0, 32) unloadBtn.Position = UDim2.new(0, 15, 0, 332) unloadBtn.BackgroundColor3 = Color3.fromRGB(28, 16, 18) unloadBtn.Text = "UNLOAD MENU" unloadBtn.Font = Enum.Font.GothamBold unloadBtn.TextSize, unloadBtn.TextColor3 = 11, Color3.fromRGB(255, 70, 70) unloadBtn.Parent = contentContainer local unloadCorner = Instance.new("UICorner") unloadCorner.CornerRadius = UDim.new(0, 10) unloadCorner.Parent = unloadBtn local unloadStroke = Instance.new("UIStroke") unloadStroke.Color = Color3.fromRGB(150, 50, 50) unloadStroke.Thickness = 1 unloadStroke.Transparency = 0.5 unloadStroke.Parent = unloadBtn setupButtonAnimations(unloadBtn) showTooltip(unloadBtn, "Closes and completely removes the diagnostics menu interface.") -- Confirmation Overlay (Hidden by default) local confirmOverlay = Instance.new("Frame") confirmOverlay.Size = UDim2.new(1, 0, 1, 0) confirmOverlay.Position = UDim2.new(0, 0, 0, 0) confirmOverlay.BackgroundColor3 = Color3.fromRGB(12, 15, 13) confirmOverlay.BackgroundTransparency = 1 confirmOverlay.Visible = false confirmOverlay.ZIndex = 10 confirmOverlay.Parent = main local confirmBox = Instance.new("Frame") confirmBox.Size = UDim2.new(0, 0, 0, 0) confirmBox.Position = UDim2.new(0.5, 0, 0.5, 0) confirmBox.BackgroundColor3 = Color3.fromRGB(16, 21, 24) confirmBox.BorderSizePixel = 0 confirmBox.ZIndex = 11 confirmBox.Parent = confirmOverlay local cbCorner = Instance.new("UICorner") cbCorner.CornerRadius = UDim.new(0, 12) cbCorner.Parent = confirmBox local cbStroke = Instance.new("UIStroke") cbStroke.Color = Color3.fromRGB(0, 180, 255) cbStroke.Thickness = 1.5 cbStroke.Transparency = 0.3 cbStroke.Parent = confirmBox local confirmLabel = Instance.new("TextLabel") confirmLabel.Size = UDim2.new(1, -20, 0, 45) confirmLabel.Position = UDim2.new(0, 10, 0, 15) confirmLabel.BackgroundTransparency = 1 confirmLabel.Text = "Are you sure you want to unload this menu?" confirmLabel.Font = Enum.Font.GothamBold confirmLabel.TextSize = 11 confirmLabel.TextColor3 = Color3.fromRGB(220, 235, 245) confirmLabel.TextWrapped = true confirmLabel.TextXAlignment = Enum.TextXAlignment.Center confirmLabel.ZIndex = 12 confirmLabel.Parent = confirmBox -- YES Button local yesBtn = Instance.new("TextButton") yesBtn.Size = UDim2.new(0.44, 0, 0, 32) yesBtn.Position = UDim2.new(0.04, 0, 0, 75) yesBtn.BackgroundColor3 = Color3.fromRGB(28, 16, 18) yesBtn.Text = "YES, UNLOAD" yesBtn.Font = Enum.Font.GothamBold yesBtn.TextSize = 10 yesBtn.TextColor3 = Color3.fromRGB(255, 70, 70) yesBtn.ZIndex = 12 yesBtn.Parent = confirmBox local yesCorner = Instance.new("UICorner") yesCorner.CornerRadius = UDim.new(0, 8) yesCorner.Parent = yesBtn local yesStroke = Instance.new("UIStroke") yesStroke.Color = Color3.fromRGB(150, 50, 50) yesStroke.Thickness = 1 yesStroke.Transparency = 0.5 yesStroke.Parent = yesBtn setupButtonAnimations(yesBtn) -- NO Button local noBtn = Instance.new("TextButton") noBtn.Size = UDim2.new(0.44, 0, 0, 32) noBtn.Position = UDim2.new(0.52, 0, 0, 75) noBtn.BackgroundColor3 = Color3.fromRGB(16, 22, 28) noBtn.Text = "NO, CANCEL" noBtn.Font = Enum.Font.GothamBold noBtn.TextSize = 10 noBtn.TextColor3 = Color3.fromRGB(0, 180, 255) noBtn.ZIndex = 12 noBtn.Parent = confirmBox local noCorner = Instance.new("UICorner") noCorner.CornerRadius = UDim.new(0, 8) noCorner.Parent = noBtn local noStroke = Instance.new("UIStroke") noStroke.Color = Color3.fromRGB(0, 120, 180) noStroke.Thickness = 1 noStroke.Transparency = 0.5 noStroke.Parent = noBtn setupButtonAnimations(noBtn) -- Open Confirmation Popup with Animation unloadBtn.MouseButton1Click:Connect(function() confirmOverlay.Visible = true confirmOverlay.BackgroundTransparency = 1 confirmBox.Size = UDim2.new(0, 0, 0, 0) confirmBox.Position = UDim2.new(0.5, 0, 0.5, 0) TweenService:Create(confirmOverlay, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), { BackgroundTransparency = 0.3 }):Play() TweenService:Create(confirmBox, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Size = UDim2.new(0, 320, 0, 125), Position = UDim2.new(0.5, -160, 0.5, -62.5) }):Play() end) -- YES: Play Exit Animation, then Destroy GUI (Silent) yesBtn.MouseButton1Click:Connect(function() yesBtn.Active = false noBtn.Active = false confirmOverlay.Visible = false local closeTween = TweenService:Create(main, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0) }) closeTween:Play() closeTween.Completed:Wait() if gui then gui:Destroy() end end) -- NO: Close Confirmation Popup with Animation noBtn.MouseButton1Click:Connect(function() local t1 = TweenService:Create(confirmOverlay, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { BackgroundTransparency = 1 }) local t2 = TweenService:Create(confirmBox, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), { Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0) }) t1:Play() t2:Play() t2.Completed:Connect(function() confirmOverlay.Visible = false end) end)