-- Services local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local camera = game.Workspace.CurrentCamera local spying = false -- Create GUI local spyGui = Instance.new("ScreenGui") spyGui.Parent = localPlayer:WaitForChild("PlayerGui") -- Create Movable Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 350, 0, 400) -- Adjusted width for avatars mainFrame.Position = UDim2.new(0.1, 0, 0.1, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = spyGui -- Title local title = Instance.new("TextLabel") title.Text = "Admin Spy Panel" title.Size = UDim2.new(1, 0, 0.1, 0) title.BackgroundTransparency = 1 title.TextScaled = true title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Parent = mainFrame -- Close Button local closeButton = Instance.new("TextButton") closeButton.Text = "X" closeButton.Size = UDim2.new(0, 30, 0, 30) closeButton.Position = UDim2.new(1, -35, 0, 5) closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.Parent = mainFrame -- Scrollable Player List local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, 0, 0.75, 0) scrollFrame.Position = UDim2.new(0, 0, 0.1, 0) scrollFrame.CanvasSize = UDim2.new(0, 0, 1, 0) scrollFrame.ScrollBarThickness = 5 scrollFrame.Parent = mainFrame -- Stop Spying Button local stopSpyingButton = Instance.new("TextButton") stopSpyingButton.Text = "Stop Spying" stopSpyingButton.Size = UDim2.new(0.8, 0, 0.1, 0) stopSpyingButton.Position = UDim2.new(0.1, 0, 0.86, 0) stopSpyingButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) stopSpyingButton.TextColor3 = Color3.fromRGB(255, 255, 255) stopSpyingButton.Visible = false stopSpyingButton.Parent = mainFrame -- Function to stop spying local function stopSpying() spying = false camera.CameraSubject = localPlayer.Character:FindFirstChild("Humanoid") or localPlayer.Character stopSpyingButton.Visible = false end -- Attach stop function to the button stopSpyingButton.MouseButton1Click:Connect(stopSpying) -- Function to update player list local function updatePlayerList() -- Clear previous list for _, child in pairs(scrollFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end -- Create new list local yOffset = 0 for _, player in pairs(Players:GetPlayers()) do if player ~= localPlayer then local playerFrame = Instance.new("Frame") playerFrame.Size = UDim2.new(1, 0, 0, 40) -- Increased height for avatars playerFrame.Position = UDim2.new(0, 0, 0, yOffset) playerFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) playerFrame.Parent = scrollFrame -- Avatar Image local avatarImage = Instance.new("ImageLabel") avatarImage.Size = UDim2.new(0, 35, 0, 35) avatarImage.Position = UDim2.new(0, 5, 0, 2) avatarImage.BackgroundTransparency = 1 avatarImage.Parent = playerFrame avatarImage.Image = "https://www.roblox.com/headshot-thumbnail/image?userId=" .. player.UserId .. "&width=150&height=150&format=png" -- Player Name local playerName = Instance.new("TextLabel") playerName.Text = player.Name playerName.Size = UDim2.new(0.4, 0, 1, 0) playerName.Position = UDim2.new(0.15, 0, 0, 0) -- Adjusted for avatar playerName.TextColor3 = Color3.fromRGB(255, 255, 255) playerName.BackgroundTransparency = 1 playerName.Parent = playerFrame -- Spy Button local spyButton = Instance.new("TextButton") spyButton.Text = "Spy" spyButton.Size = UDim2.new(0.2, 0, 1, 0) spyButton.Position = UDim2.new(0.55, 0, 0, 0) spyButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) spyButton.TextColor3 = Color3.fromRGB(255, 255, 255) spyButton.Parent = playerFrame -- Teleport Button local tpButton = Instance.new("TextButton") tpButton.Text = "Teleport" tpButton.Size = UDim2.new(0.25, 0, 1, 0) tpButton.Position = UDim2.new(0.75, 0, 0, 0) tpButton.BackgroundColor3 = Color3.fromRGB(70, 50, 100) tpButton.TextColor3 = Color3.fromRGB(255, 255, 255) tpButton.Parent = playerFrame -- Spy Button Function spyButton.MouseButton1Click:Connect(function() if player.Character and player.Character:FindFirstChild("Humanoid") then spying = true camera.CameraSubject = player.Character:FindFirstChild("Humanoid") stopSpyingButton.Visible = true end end) -- Teleport Button Function tpButton.MouseButton1Click:Connect(function() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local character = localPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then character:FindFirstChild("HumanoidRootPart").CFrame = player.Character:FindFirstChild("HumanoidRootPart").CFrame end end end) yOffset = yOffset + 45 end end scrollFrame.CanvasSize = UDim2.new(0, 0, 0, yOffset) end -- Auto-refresh the player list every 5 seconds while true do updatePlayerList() wait(5) end