-- [[ 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 ]] -- Player Viewer v1.7 (Without Bring, Credits Top Right & Orange Theme) -- LocalScript: StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local camera = Workspace.CurrentCamera -------------------------------------------------- -- GUI CREATION -------------------------------------------------- local gui = Instance.new("ScreenGui") gui.Name = "PlayerViewerUI" gui.ResetOnSpawn = false gui.Parent = CoreGui:FindFirstChild("RobloxGui") or player:WaitForChild("PlayerGui") local main = Instance.new("Frame") main.Size = UDim2.new(0, 420, 0, 470) main.Position = UDim2.new(0.5, -210, 0.5, -235) main.BackgroundColor3 = Color3.fromRGB(15, 14, 11) main.BorderSizePixel = 0 main.ClipsDescendants = true 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, 420, 0, 470), Position = UDim2.new(0.5, -210, 0.5, -235) }):Play() local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 16) mainCorner.Parent = main -- Modern yellow border glow local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(255, 200, 0) mainStroke.Thickness = 1.5 mainStroke.Transparency = 0.2 mainStroke.Parent = main -------------------------------------------------- -- HEADER -------------------------------------------------- local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 42) header.BackgroundColor3 = Color3.fromRGB(20, 18, 14) header.BorderSizePixel = 0 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(0, 180, 1, 0) title.Position = UDim2.new(0, 15, 0, 0) title.BackgroundTransparency = 1 title.Text = "PLAYER VIEWER" 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(0, 120, 1, 0) credit.Position = UDim2.new(1, -135, 0, 0) credit.BackgroundTransparency = 1 credit.Text = "by veryvare" credit.Font = Enum.Font.GothamMedium credit.TextSize = 10 credit.TextColor3 = Color3.fromRGB(130, 115, 80) credit.TextXAlignment = Enum.TextXAlignment.Right credit.Parent = header -- 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 -- SPECTATE STATUS DISPLAY local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -30, 0, 24) statusLabel.Position = UDim2.new(0, 15, 0, 10) statusLabel.BackgroundColor3 = Color3.fromRGB(25, 21, 13) statusLabel.Text = "Spectating: None" statusLabel.Font = Enum.Font.GothamMedium statusLabel.TextSize = 11 statusLabel.TextColor3 = Color3.fromRGB(200, 170, 80) statusLabel.Parent = contentContainer local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 8) statusCorner.Parent = statusLabel local statusStroke = Instance.new("UIStroke") statusStroke.Color = Color3.fromRGB(120, 95, 20) statusStroke.Thickness = 1 statusStroke.Transparency = 0.5 statusStroke.Parent = statusLabel -- SEARCH BAR local searchBox = Instance.new("TextBox") searchBox.Size = UDim2.new(1, -110, 0, 32) searchBox.Position = UDim2.new(0, 15, 0, 42) searchBox.BackgroundColor3 = Color3.fromRGB(20, 18, 14) searchBox.PlaceholderText = "Search player..." searchBox.PlaceholderColor3 = Color3.fromRGB(100, 90, 70) searchBox.Text = "" searchBox.Font = Enum.Font.GothamMedium searchBox.TextSize = 12 searchBox.TextColor3 = Color3.fromRGB(255, 255, 255) searchBox.Parent = contentContainer local searchCorner = Instance.new("UICorner") searchCorner.CornerRadius = UDim.new(0, 8) searchCorner.Parent = searchBox local searchStroke = Instance.new("UIStroke") searchStroke.Color = Color3.fromRGB(50, 43, 25) searchStroke.Thickness = 1 searchStroke.Parent = searchBox -- AUTO-REFRESH TOGGLE BUTTON local autoRefreshEnabled = false local autoRefreshBtn = Instance.new("TextButton") autoRefreshBtn.Size = UDim2.new(0, 80, 0, 32) autoRefreshBtn.Position = UDim2.new(1, -95, 0, 42) autoRefreshBtn.BackgroundColor3 = Color3.fromRGB(20, 18, 14) autoRefreshBtn.Text = "Auto: OFF" autoRefreshBtn.Font = Enum.Font.GothamBold autoRefreshBtn.TextSize = 10 autoRefreshBtn.TextColor3 = Color3.fromRGB(150, 120, 0) autoRefreshBtn.Parent = contentContainer local autoCorner = Instance.new("UICorner") autoCorner.CornerRadius = UDim.new(0, 8) autoCorner.Parent = autoRefreshBtn local autoStroke = Instance.new("UIStroke") autoStroke.Color = Color3.fromRGB(50, 43, 25) autoStroke.Thickness = 1 autoStroke.Parent = autoRefreshBtn -------------------------------------------------- -- PLAYER LIST SCROLLING FRAME -------------------------------------------------- local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, -30, 1, -170) scrollFrame.Position = UDim2.new(0, 15, 0, 82) scrollFrame.BackgroundTransparency = 1 scrollFrame.BorderSizePixel = 0 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.ScrollBarThickness = 4 scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(255, 200, 0) scrollFrame.Parent = contentContainer local uiLayout = Instance.new("UIListLayout") uiLayout.SortOrder = Enum.SortOrder.LayoutOrder uiLayout.Padding = UDim.new(0, 8) uiLayout.Parent = scrollFrame uiLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scrollFrame.CanvasSize = UDim2.new(0, 0, 0, uiLayout.AbsoluteContentSize.Y) end) -------------------------------------------------- -- SPECTATE / TELEPORT LOGIC -------------------------------------------------- local spectatingPlayer = nil local activeSpecButton = nil local function resetCamera() if player.Character and player.Character:FindFirstChild("Humanoid") then camera.CameraSubject = player.Character.Humanoid end statusLabel.Text = "Spectating: None" end local renderConnection renderConnection = RunService.RenderStepped:Connect(function() if spectatingPlayer then if spectatingPlayer.Character and spectatingPlayer.Character:FindFirstChild("Humanoid") then camera.CameraSubject = spectatingPlayer.Character.Humanoid else spectatingPlayer = nil if activeSpecButton then activeSpecButton.Text = "SPECTATE" activeSpecButton.BackgroundColor3 = Color3.fromRGB(30, 26, 16) activeSpecButton.TextColor3 = Color3.fromRGB(255, 200, 0) activeSpecButton = nil end resetCamera() end end end) local function clearPlayerList() for _, child in ipairs(scrollFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end end local function createPlayerCard(targetPlayer) if targetPlayer == player then return end local searchQuery = searchBox.Text:lower() if searchQuery ~= "" and not targetPlayer.Name:lower():find(searchQuery) and not targetPlayer.DisplayName:lower():find(searchQuery) then return end local card = Instance.new("Frame") card.Size = UDim2.new(1, 0, 0, 46) card.BackgroundColor3 = Color3.fromRGB(20, 18, 14) card.Parent = scrollFrame local cardCorner = Instance.new("UICorner") cardCorner.CornerRadius = UDim.new(0, 10) cardCorner.Parent = card local cardStroke = Instance.new("UIStroke") cardStroke.Color = Color3.fromRGB(45, 40, 25) cardStroke.Thickness = 1 cardStroke.Parent = card local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(0.4, -5, 1, 0) nameLabel.Position = UDim2.new(0, 12, 0, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = targetPlayer.Name nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 12 nameLabel.TextColor3 = Color3.fromRGB(230, 230, 230) nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Parent = card -- Copy Button local copyBtn = Instance.new("TextButton") copyBtn.Size = UDim2.new(0, 50, 0, 28) copyBtn.Position = UDim2.new(1, -215, 0.5, -14) copyBtn.BackgroundColor3 = Color3.fromRGB(30, 26, 16) copyBtn.Text = "COPY" copyBtn.Font = Enum.Font.GothamBold copyBtn.TextSize = 10 copyBtn.TextColor3 = Color3.fromRGB(255, 200, 0) copyBtn.Parent = card local copyCorner = Instance.new("UICorner") copyCorner.CornerRadius = UDim.new(0, 8) copyCorner.Parent = copyBtn local copyStroke = Instance.new("UIStroke") copyStroke.Color = Color3.fromRGB(150, 120, 0) copyStroke.Thickness = 1 copyStroke.Transparency = 0.5 copyStroke.Parent = copyBtn copyBtn.MouseButton1Click:Connect(function() pcall(function() setclipboard(targetPlayer.Name) end) copyBtn.Text = "COPIED" task.wait(1) copyBtn.Text = "COPY" end) -- Teleport Button (TP) local tpBtn = Instance.new("TextButton") tpBtn.Size = UDim2.new(0, 65, 0, 28) tpBtn.Position = UDim2.new(1, -160, 0.5, -14) tpBtn.BackgroundColor3 = Color3.fromRGB(30, 26, 16) tpBtn.Text = "TP" tpBtn.Font = Enum.Font.GothamBold tpBtn.TextSize = 11 tpBtn.TextColor3 = Color3.fromRGB(255, 200, 0) tpBtn.Parent = card local tpCorner = Instance.new("UICorner") tpCorner.CornerRadius = UDim.new(0, 8) tpCorner.Parent = tpBtn local tpStroke = Instance.new("UIStroke") tpStroke.Color = Color3.fromRGB(150, 120, 0) tpStroke.Thickness = 1 tpStroke.Transparency = 0.5 tpStroke.Parent = tpBtn tpBtn.MouseButton1Click:Connect(function() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.CFrame = targetPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0) end end) -- Spectate Button local specBtn = Instance.new("TextButton") specBtn.Size = UDim2.new(0, 85, 0, 28) specBtn.Position = UDim2.new(1, -90, 0.5, -14) specBtn.BackgroundColor3 = Color3.fromRGB(30, 26, 16) specBtn.Text = "SPECTATE" specBtn.Font = Enum.Font.GothamBold specBtn.TextSize = 11 specBtn.TextColor3 = Color3.fromRGB(255, 200, 0) specBtn.Parent = card local specCorner = Instance.new("UICorner") specCorner.CornerRadius = UDim.new(0, 8) specCorner.Parent = specBtn local specStroke = Instance.new("UIStroke") specStroke.Color = Color3.fromRGB(150, 120, 0) specStroke.Thickness = 1 specStroke.Transparency = 0.5 specStroke.Parent = specBtn if spectatingPlayer == targetPlayer then activeSpecButton = specBtn specBtn.Text = "UNSPECT" specBtn.TextColor3 = Color3.fromRGB(255, 255, 255) specBtn.BackgroundColor3 = Color3.fromRGB(255, 120, 0) end specBtn.MouseButton1Click:Connect(function() if spectatingPlayer == targetPlayer then spectatingPlayer = nil activeSpecButton = nil specBtn.Text = "SPECTATE" specBtn.TextColor3 = Color3.fromRGB(255, 200, 0) TweenService:Create(specBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(30, 26, 16) }):Play() resetCamera() else if activeSpecButton and activeSpecButton ~= specBtn then activeSpecButton.Text = "SPECTATE" activeSpecButton.TextColor3 = Color3.fromRGB(255, 200, 0) TweenService:Create(activeSpecButton, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(30, 26, 16) }):Play() end spectatingPlayer = targetPlayer activeSpecButton = specBtn specBtn.Text = "UNSPECT" specBtn.TextColor3 = Color3.fromRGB(255, 255, 255) TweenService:Create(specBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(255, 120, 0) }):Play() statusLabel.Text = "Spectating: " .. targetPlayer.Name end end) end local function refreshPlayerList() clearPlayerList() for _, p in ipairs(Players:GetPlayers()) do createPlayerCard(p) end end refreshPlayerList() searchBox:GetPropertyChangedSignal("Text"):Connect(function() refreshPlayerList() end) -- Auto-Refresh Loop task.spawn(function() while true do task.wait(3) if autoRefreshEnabled then refreshPlayerList() end end end) Players.PlayerAdded:Connect(refreshPlayerList) Players.PlayerRemoving:Connect(function(p) if spectatingPlayer == p then spectatingPlayer = nil activeSpecButton = nil resetCamera() end refreshPlayerList() end) -------------------------------------------------- -- BOTTOM BUTTONS (Auto-Refresh, Refresh, Unload) -------------------------------------------------- autoRefreshBtn.MouseButton1Click:Connect(function() autoRefreshEnabled = not autoRefreshEnabled if autoRefreshEnabled then autoRefreshBtn.Text = "Auto: ON" autoRefreshBtn.TextColor3 = Color3.fromRGB(255, 255, 255) TweenService:Create(autoRefreshBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(255, 120, 0) }):Play() else autoRefreshBtn.Text = "Auto: OFF" autoRefreshBtn.TextColor3 = Color3.fromRGB(150, 120, 0) TweenService:Create(autoRefreshBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(20, 18, 14) }):Play() end end) local refreshBtn = Instance.new("TextButton") refreshBtn.Size = UDim2.new(0.5, -8, 0, 34) refreshBtn.Position = UDim2.new(0, 15, 1, -46) refreshBtn.BackgroundColor3 = Color3.fromRGB(26, 22, 14) refreshBtn.Text = "REFRESH LIST" refreshBtn.Font = Enum.Font.GothamBold refreshBtn.TextSize = 11 refreshBtn.TextColor3 = Color3.fromRGB(255, 200, 0) refreshBtn.Parent = contentContainer local refreshCorner = Instance.new("UICorner") refreshCorner.CornerRadius = UDim.new(0, 10) refreshCorner.Parent = refreshBtn local refreshStroke = Instance.new("UIStroke") refreshStroke.Color = Color3.fromRGB(150, 120, 0) refreshStroke.Thickness = 1 refreshStroke.Transparency = 0.5 refreshStroke.Parent = refreshBtn refreshBtn.MouseButton1Click:Connect(function() TweenService:Create(refreshBtn, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Color3.fromRGB(255, 200, 0), TextColor3 = Color3.fromRGB(15, 14, 11) }):Play() TweenService:Create(refreshBtn, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { BackgroundColor3 = Color3.fromRGB(26, 22, 14), TextColor3 = Color3.fromRGB(255, 200, 0) }):Play() refreshPlayerList() end) local unloadBtn = Instance.new("TextButton") unloadBtn.Size = UDim2.new(0.5, -8, 0, 34) unloadBtn.Position = UDim2.new(0.5, 3, 1, -46) unloadBtn.BackgroundColor3 = Color3.fromRGB(35, 18, 18) unloadBtn.Text = "UNLOAD MENU" unloadBtn.Font = Enum.Font.GothamBold unloadBtn.TextSize = 11 unloadBtn.TextColor3 = 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 unloadBtn.MouseButton1Click:Connect(function() if renderConnection then renderConnection:Disconnect() end resetCamera() 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() gui:Destroy() end)