Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
2

Playerlist not functioning properly?

Asked by 7 years ago
Edited 7 years ago
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

Log in to vote
2
Answered by
1waffle1 2908 Trusted Badge of Merit Moderation Voter Community Moderator
7 years ago
Edited 7 years ago

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()
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? NinjoOnline 1146 — 7y
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? NinjoOnline 1146 — 7y
0
And another problem, it doesn't work in online mode NinjoOnline 1146 — 7y
0
It only seems to work when a second player joins :/ NinjoOnline 1146 — 7y
View all comments (4 more)
0
added update() to line 14 1waffle1 2908 — 7y
0
Works! Thank you!! NinjoOnline 1146 — 7y
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 :/ NinjoOnline 1146 — 7y
0
Wait nvm, think I got it NinjoOnline 1146 — 7y
Ad

Answer this question