Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Playerlist not functioning properly?

local frame = script.Parent
local labels = {}

for i = 1, game.Players.MaxPlayers do
    labels[i] = frame:WaitForChild("Player"..i)
end

local players = game.Players:GetPlayers()

for number = 1, #labels do
    labels[number].Text = tostring(players[number] or "")
end

08:39:02.906 - Infinite yield possible on 'Players.Player1.PlayerGui.PlayerListUI.PlayerListFrame:WaitForChild("Player11")' 08:39:02.908 - Script 'Players.Player1.PlayerGui.PlayerListUI.PlayerListFrame.LocalScript', Line 7 08:39:02.909 - Stack End I have 10 TextLabels inside the frame, and I have it set so the MaxPlayers is 10 per server. It works when I join the actual game, but it doesn't work in studio, and I have the error that is printed in the output above.

1 answer

✓ Accepted answer

You don't need to be checking how many players there are, you can just iterate through the labels and set the text of that label to the name of that player (or blank if there are no more players.)

local frame = script.Parent
local labels = {}
for i = 1, game.Players.MaxPlayers do
	labels[i] = frame:WaitForChild("Player"..i)
end
local players=game.Players:GetPlayers()
for number = 1, #labels do
	labels[number].Text = tostring(players[number] or "")
end

edit: If you want it to update whenever a player joins/leaves, connect it to PlayerAdded and PlayerRemoving:

local frame = script.Parent
local labels = {}
for i = 1, game.Players.MaxPlayers do
	labels[i] = frame:WaitForChild("Player"..i)
end
function update()
	local players=game.Players:GetPlayers()
	for number = 1, #labels do
		labels[number].Text = tostring(players[number] or "")
	end
end
game.Players.PlayerAdded:connect(update)
game.Players.PlayerRemoving:connect(update)
update()

8 comments

0

Ok, it does work, but a slight problem. If I am on the server it has my name, but if my friend joins, their name doesn't add onto the list for me?

0

I'm not sure if it's just studio, but now when I test it, it works for player1, but nothing appears on player2s screen? Does it only work in actual game servers and not the studio servers?

0

And another problem, it doesn't work in online mode

0

It only seems to work when a second player joins :/

0

added update() to line 14

0

Works! Thank you!!

0

One last question, if I do players[number] that returns the player who joined, but nil for the other 9 spots. I'm trying to make it so if a player joins witha certain name they get different colored text. I edited my question with what I have but it doesn't work :/

0

Wait nvm, think I got it

This discussion is preserved as it was. New answers, comments, and votes are closed.