
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local HttpService = game:GetService("HttpService")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "FriendViewer"
ScreenGui.Parent = game:GetService("CoreGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 350, 0, 500)
MainFrame.Position = UDim2.new(0.5, -175, 0.5, -250)
MainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 8)
Corner.Parent = MainFrame
local Shadow = Instance.new("ImageLabel")
Shadow.Name = "Shadow"
Shadow.Size = UDim2.new(1, 10, 1, 10)
Shadow.Position = UDim2.new(0, -5, 0, -5)
Shadow.BackgroundTransparency = 1
Shadow.Image = "rbxassetid://1316045217"
Shadow.ImageColor3 = Color3.new(0, 0, 0)
Shadow.ImageTransparency = 0.8
Shadow.ScaleType = Enum.ScaleType.Slice
Shadow.SliceCenter = Rect.new(10, 10, 118, 118)
Shadow.ZIndex = -1
Shadow.Parent = MainFrame
local Title = Instance.new("TextLabel")
Title.Name = "Title"
Title.Size = UDim2.new(1, 0, 0, 45)
Title.Position = UDim2.new(0, 0, 0, 0)
Title.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
Title.BorderSizePixel = 0
Title.Text = "FRIEND CHECKER"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.Parent = MainFrame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 8)
TitleCorner.Parent = Title
local CloseButton = Instance.new("ImageButton")
CloseButton.Name = "CloseButton"
CloseButton.Size = UDim2.new(0, 25, 0, 25)
CloseButton.Position = UDim2.new(1, -30, 0.5, -12)
CloseButton.AnchorPoint = Vector2.new(0, 0.5)
CloseButton.BackgroundTransparency = 1
CloseButton.Image = "rbxassetid://3926305904"
CloseButton.ImageRectOffset = Vector2.new(284, 4)
CloseButton.ImageRectSize = Vector2.new(24, 24)
CloseButton.Parent = Title
CloseButton.MouseEnter:Connect(function()
TweenService:Create(CloseButton, TweenInfo.new(0.15), {
ImageColor3 = Color3.fromRGB(255, 80, 80)
}):Play()
end)
CloseButton.MouseLeave:Connect(function()
TweenService:Create(CloseButton, TweenInfo.new(0.15), {
ImageColor3 = Color3.fromRGB(255, 255, 255)
}):Play()
end)
local PlayerList = Instance.new("ScrollingFrame")
PlayerList.Name = "PlayerList"
PlayerList.Size = UDim2.new(1, -20, 1, -60)
PlayerList.Position = UDim2.new(0, 10, 0, 50)
PlayerList.BackgroundTransparency = 1
PlayerList.ScrollBarThickness = 2
PlayerList.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
PlayerList.Parent = MainFrame
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 5)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = PlayerList
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
PlayerList.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y)
end)
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 8)
UIListLayout.Parent = PlayerList
local friendships = {}
local function createPlayerButton(player)
local button = Instance.new("TextButton")
button.Name = player.Name
button.Size = UDim2.new(1, 0, 0, 60)
button.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
button.BorderSizePixel = 0
button.Text = ""
button.AutoButtonColor = false
button.Parent = PlayerList
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 6)
Corner.Parent = button
local Layout = Instance.new("UIListLayout")
Layout.Padding = UDim.new(0, 5)
Layout.Parent = button
local DisplayNameLabel = Instance.new("TextLabel")
DisplayNameLabel.Name = "DisplayName"
DisplayNameLabel.Size = UDim2.new(1, -60, 0, 15)
DisplayNameLabel.Position = UDim2.new(0, 50, 0, 25)
DisplayNameLabel.BackgroundTransparency = 1
DisplayNameLabel.Text = "@" .. player.DisplayName
DisplayNameLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
DisplayNameLabel.Font = Enum.Font.Gotham
DisplayNameLabel.TextSize = 12
DisplayNameLabel.TextXAlignment = Enum.TextXAlignment.Left
DisplayNameLabel.Parent = button
local FriendCount = Instance.new("TextLabel")
FriendCount.Name = "FriendCount"
FriendCount.Size = UDim2.new(0, 60, 0, 18)
FriendCount.Position = UDim2.new(1, -65, 0, 5)
FriendCount.AnchorPoint = Vector2.new(0, 0)
FriendCount.BackgroundColor3 = Color3.fromRGB(45, 70, 50)
FriendCount.BackgroundTransparency = 1
FriendCount.Text = ""
FriendCount.TextColor3 = Color3.fromRGB(255, 255, 255)
FriendCount.Font = Enum.Font.GothamBold
FriendCount.TextSize = 0
FriendCount.TextXAlignment = Enum.TextXAlignment.Center
FriendCount.TextYAlignment = Enum.TextYAlignment.Center
FriendCount.ZIndex = 5
FriendCount.Parent = button
local Avatar = Instance.new("ImageLabel")
Avatar.Name = "Avatar"
Avatar.Size = UDim2.new(0, 40, 0, 40)
Avatar.Position = UDim2.new(0, 5, 0, 5)
Avatar.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
Avatar.BorderSizePixel = 0
Avatar.Parent = button
local thumb = Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
Avatar.Image = thumb
local AvatarCorner = Instance.new("UICorner")
AvatarCorner.CornerRadius = UDim.new(0, 6)
AvatarCorner.Parent = Avatar
button.MouseEnter:Connect(function()
TweenService:Create(button, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(55, 55, 65)
}):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(button, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(40, 40, 50)
}):Play()
end)
coroutine.wrap(function()
local friendCount = 0
for _, otherPlayer in Players:GetPlayers() do
if otherPlayer ~= player then
local success, isFriend = pcall(function()
return otherPlayer:IsFriendsWith(player.UserId)
end)
if success and isFriend then
friendCount = friendCount + 1
local found = false
for _, pair in ipairs(friendships) do
if (pair[1] == player and pair[2] == otherPlayer) or (pair[1] == otherPlayer and pair[2] == player) then
found = true
break
end
end
if not found then
table.insert(friendships, {player, otherPlayer})
end
end
end
end
FriendCount.Text = "Friends: " .. friendCount
end)()
button.MouseButton1Click:Connect(function()
local Popup = Instance.new("Frame")
Popup.Name = "FriendListPopup"
Popup.Size = UDim2.new(0, 300, 0, 400)
Popup.Position = UDim2.new(0.5, -150, 0.5, -200)
Popup.AnchorPoint = Vector2.new(0.5, 0.5)
Popup.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
Popup.BorderSizePixel = 0
Popup.Parent = ScreenGui
local PopupCorner = Instance.new("UICorner")
PopupCorner.CornerRadius = UDim.new(0, 8)
PopupCorner.Parent = Popup
local PopupShadow = Instance.new("ImageLabel")
PopupShadow.Name = "Shadow"
PopupShadow.Size = UDim2.new(1, 10, 1, 10)
PopupShadow.Position = UDim2.new(0, -5, 0, -5)
PopupShadow.BackgroundTransparency = 1
PopupShadow.Image = "rbxassetid://1316045217"
PopupShadow.ImageColor3 = Color3.new(0, 0, 0)
PopupShadow.ImageTransparency = 0.8
PopupShadow.ScaleType = Enum.ScaleType.Slice
PopupShadow.SliceCenter = Rect.new(10, 10, 118, 118)
PopupShadow.ZIndex = -1
PopupShadow.Parent = Popup
local PopupTitle = Instance.new("TextLabel")
PopupTitle.Name = "Title"
PopupTitle.Size = UDim2.new(1, 0, 0, 40)
PopupTitle.Position = UDim2.new(0, 0, 0, 0)
PopupTitle.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
PopupTitle.BorderSizePixel = 0
PopupTitle.Text = player.Name .. "'s Friends"
PopupTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
PopupTitle.Font = Enum.Font.GothamBold
PopupTitle.TextSize = 16
PopupTitle.Parent = Popup
local PopupClose = Instance.new("ImageButton")
PopupClose.Name = "CloseButton"
PopupClose.Size = UDim2.new(0, 25, 0, 25)
PopupClose.Position = UDim2.new(1, -30, 0.5, -12)
PopupClose.AnchorPoint = Vector2.new(0, 0.5)
PopupClose.BackgroundTransparency = 1
PopupClose.Image = "rbxassetid://3926305904"
PopupClose.ImageRectOffset = Vector2.new(284, 4)
PopupClose.ImageRectSize = Vector2.new(24, 24)
PopupClose.Parent = PopupTitle
local FriendsScroll = Instance.new("ScrollingFrame")
FriendsScroll.Name = "FriendsScroll"
FriendsScroll.Size = UDim2.new(1, -10, 1, -50)
FriendsScroll.Position = UDim2.new(0, 5, 0, 45)
FriendsScroll.BackgroundTransparency = 1
FriendsScroll.ScrollBarThickness = 2
FriendsScroll.Parent = Popup
local FriendsLayout = Instance.new("UIListLayout")
FriendsLayout.Padding = UDim.new(0, 5)
FriendsLayout.Parent = FriendsScroll
local friendCount = 0
for _, otherPlayer in Players:GetPlayers() do
if otherPlayer ~= player then
local success, isFriend = pcall(function()
return otherPlayer:IsFriendsWith(player.UserId)
end)
if success and isFriend then
friendCount = friendCount + 1
local friendEntry = Instance.new("TextButton")
friendEntry.Name = otherPlayer.Name
friendEntry.Size = UDim2.new(1, 0, 0, 40)
friendEntry.BackgroundColor3 = Color3.fromRGB(50, 50, 60)
friendEntry.BorderSizePixel = 0
friendEntry.Text = ""
friendEntry.AutoButtonColor = false
friendEntry.Parent = FriendsScroll
local FriendCorner = Instance.new("UICorner")
FriendCorner.CornerRadius = UDim.new(0, 6)
FriendCorner.Parent = friendEntry
local FriendName = Instance.new("TextLabel")
FriendName.Name = "Name"
FriendName.Size = UDim2.new(1, -50, 1, 0)
FriendName.Position = UDim2.new(0, 50, 0, 0)
FriendName.BackgroundTransparency = 1
FriendName.Text = otherPlayer.Name
FriendName.TextColor3 = Color3.fromRGB(255, 255, 255)
FriendName.Font = Enum.Font.Gotham
FriendName.TextSize = 14
FriendName.TextXAlignment = Enum.TextXAlignment.Left
FriendName.Parent = friendEntry
local FriendAvatar = Instance.new("ImageLabel")
FriendAvatar.Name = "Avatar"
FriendAvatar.Size = UDim2.new(0, 30, 0, 30)
FriendAvatar.Position = UDim2.new(0, 10, 0.5, -15)
FriendAvatar.AnchorPoint = Vector2.new(0, 0.5)
FriendAvatar.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
FriendAvatar.BorderSizePixel = 0
FriendAvatar.Parent = friendEntry
local thumb = Players:GetUserThumbnailAsync(otherPlayer.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
FriendAvatar.Image = thumb
local AvatarCorner = Instance.new("UICorner")
AvatarCorner.CornerRadius = UDim.new(0, 6)
AvatarCorner.Parent = FriendAvatar
friendEntry.MouseEnter:Connect(function()
TweenService:Create(friendEntry, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(65, 65, 75)
}):Play()
end)
friendEntry.MouseLeave:Connect(function()
TweenService:Create(friendEntry, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(50, 50, 60)
}):Play()
end)
end
end
end
if friendCount == 0 then
local noFriends = Instance.new("TextLabel")
noFriends.Size = UDim2.new(1, 0, 0, 40)
noFriends.Position = UDim2.new(0, 0, 0.5, -20)
noFriends.BackgroundTransparency = 1
noFriends.Text = "No friends in this server"
noFriends.TextColor3 = Color3.fromRGB(150, 150, 150)
noFriends.Font = Enum.Font.Gotham
noFriends.TextSize = 14
noFriends.Parent = FriendsScroll
end
PopupClose.MouseButton1Click:Connect(function()
Popup:Destroy()
end)
end)
end
for _, player in ipairs(Players:GetPlayers()) do
createPlayerButton(player)
end
Players.PlayerAdded:Connect(function(player)
createPlayerButton(player)
end)
Players.PlayerRemoving:Connect(function(player)
local button = PlayerList:FindFirstChild(player.Name)
if button then
button:Destroy()
end
for i = #friendships, 1, -1 do
if friendships[i][1] == player or friendships[i][2] == player then
table.remove(friendships, i)
end
end
end)
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
Title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
Title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
local isFriendInServer = true
for _, otherPlayer in ipairs(players:GetPlayers()) do
if player:IsFriendsWith(otherPlayer.UserId) then
isFriendInServer = true
break
end
end
--Currently broken too lazy to fix so placeholder
if isFriendInServer then
button.BackgroundColor3 = Color3.fromRGB(45, 125, 80)
else
button.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
end



neat
can you make it better for mobile users by additional a toggle pls and thanks, it covers up ur whole screeen once u execute and u cant get it out