I’ve built a custom playerlist and now I want to make it so I can differentiate normal players versus staff members. How would I go about this?
This is what I’ve already done:
local STAFF_MEMBERS = {
[1645028151] = true,
[-1] = true
}
How would I make it to check that if these people have joined the game, they get the staff icon next to their name using StaffIcon.Visible
?
You can use table.Find for this.
For example:
local staffMembers = {"name1", "name2", "name3"}
staffMember = table.find(staffMembers, "game.Players.LocalPlayer.Name")
if staffMember then
print("This user is a staff member")
end
local STAFF_MEMBERS = {
[1645028151] = true,
[-1] = true
}
local StaffIcon = -- Path to staff icon
game:GetService("Players").PlayerAdded:Connect(function(Player)
if STAFF_MEMBERS[Player.UserId] then
StaffIcon.Visible = true
end
end)
Okay so small problem, the localscript clones the frame named “Example” into the main frame and then renames “Example” to the Player’s name. How would I go about cloning it in the player’s frame?
![image](//devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/4X/e/f/9/ef9ef5dee7c9bfd4d5d64771b87ff20cc3786456.png)
local Teams = game:GetService("Teams")
local template = script.Example
local Players = game:GetService("Players")
local playere = game.Players.LocalPlayer
local playerList = script.Parent.ScrollingFrame
local STAFF_MEMBERS = {
[1645028151] = true,
[-1] = true
}
local StaffIcon = script.Example.player.StaffIcon
game:GetService("Players").PlayerAdded:Connect(function(Player)
if STAFF_MEMBERS[Player.UserId] then
StaffIcon.Visible = true
end
end)
function clearlist()
for _,item in pairs(playerList:GetChildren()) do
if item:IsA("TextLabel") then
item:Destroy()
end
end
end
for _, team in ipairs(Teams:GetTeams()) do
local frame = template:Clone()
frame.Name = team.Name
frame.LayoutOrder = #playerList:GetChildren()
end
function FillList()
for _,player in ipairs(Players:GetChildren()) do
if not playerList:FindFirstChild(player.Name) then
local frame = template:Clone()
frame.Name = player.Name
frame.player.Text = player.Name
frame.Parent = playerList
frame.LayoutOrder = playerList[player.Team.Name].LayoutOrder + 1
for _, object in pairs(playerList:GetChildren()) do
if object:IsA("Frame") and object.LayoutOrder >= frame.LayoutOrder and object ~= frame then
end
end
player:GetPropertyChangedSignal("TeamColor"):Connect(function()
frame.LayoutOrder = playerList[player.Team.Name].LayoutOrder + 1
end)
end
end
end
local function update()
for i, team in pairs(Teams:GetTeams()) do
if #team:GetPlayers() == 0 then
print(string.format("There are no players on the %s team.",team.Name))
playerList[team.Name].Visible = false
elseif #team:GetPlayers() > 0 then
print(string.format("There are players on the %s team.",team.Name))
playerList[team.Name].Visible = true
end
end
end
update()
FillList()
game.Players.PlayerAdded:Connect(FillList)
game.Players.PlayerRemoving:Connect(function(player)
if playerList:FindFirstChild(player.Name) then
playerList:FindFirstChild(player.Name):Destroy()
end
end)
for i, team in pairs(Teams:GetTeams()) do
team.PlayerAdded:Connect(update)
team.PlayerRemoved:Connect(update)
end
playerName = game.Players.LocalPlayer.Name
game.Players[playerName]
So like this?
local StaffIcon = script.Parent.ScrollingFrame.playerName
Apologies, could you explain again what you want the script to do for staff members? I didn’t quite understand, also, make sure to be precise about every little detail.
So, for NON Staff members, I want their playerlist name to display normally.
![image](//devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/4X/5/e/9/5e9c1c0a034286e06db29d63b3ced970042a5930.png)
But, to differentiate between normal players and Staff Members, I want the staff’s playerlist name to display with a sheild next to it like this, or any icon.
![image](//devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/4X/d/2/2/d221c8d94f33ef1aa190d3d00998b2340997dcae.png)
Where is the staff icon located?
Since it is located inside the player
text lablel , the position is 0,0, 0,0
![image](//devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/4X/8/3/4/834ae20126b6e0b50b2f21cbea3c4a79867f09a8.png)
All players have the staff icon inside them, correct? Just invisible.
local frame = template:Clone()
frame.Name = player.Name
frame.player.Text = player.Name
frame.Parent = playerList
if STAFF_MEMBERS[Player.UserId] then
frame.player.Stafficon.Visible = true
end
Oh, I mean to parent it to the player.
local frame = template:Clone()
frame.Parent = game.Players[playerName].PlayerGui.ScreenGui.ScrollingFrame
I think that would work.
You can also completely get rid of this.
1 Like
Pretty sure that’s not at all what they want, but ok.
Nevermind actually, I forgot the script was inside the gui already
1 Like
the part Player
in Player.UserId
is underlined in orange.