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

Why does custom Player List display not display everyone's stats, just the player's?

Asked by 6 years ago

Hello!

I have a custom PlayerList. It adds players as they enter, removes them as they leave. It displays the player's avatar image, their name, their kills, and their kill streak. Unfortunately, it shows your kills/killstreaks for everyone, instead of displaying their unique kills/killstreaks.

How do I correct this to show each player's unique stats? The Name/Avatar Image shows the correct thing for each unique player, its just the stats from the Leaderstats that only show your info instead of each player's. I'm betting I've overlooked something simple here. ><

Not receiving any errors. Do I need to use WaitForChild() somewhere? If so, where?

Screen Gui - LocalScript:


game.StarterGui:SetCoreGuiEnabled("PlayerList", false) local plr = game.Players.LocalPlayer local kills = plr.leaderstats.Kills.Value local killstreak = plr.leaderstats.Killstreak.Value local Avatarurl = "http://www.roblox.com/Thumbs/Avatar.ashx?x=500&y=500&Format=Png&username=" while wait(1) do for _,plr in pairs (game.Players:GetChildren()) do if script.Parent.Holder:FindFirstChild(plr.Name) then else I = Instance.new("Frame") I.Name = plr.Name I.Parent = script.Parent.Holder I.Style = "DropShadow" -- NAME T = Instance.new("TextLabel") T.BackgroundTransparency = 1 T.Text = plr.Name T.Parent = I T.Size = UDim2.new(0, 165, 0, 35) T.Position = UDim2.new(0, 10, 0, 0) if plr.Name == game.Players.LocalPlayer.Name then T.TextColor3 = Color3.fromRGB(0, 200, 255) else T.TextColor3 = Color3.new(1, 1, 1) end T.TextStrokeColor3 = Color3.new(0, 0, 0) T.TextStrokeTransparency = 0.5 T.TextXAlignment = "Left" T.Font = "SourceSansBold" T.TextSize = 20 -- KILLS K = Instance.new("TextLabel") K.BackgroundTransparency = 1 K.Text = kills K.Parent = I K.Size = UDim2.new(0, 165, 0, 35) K.Position = UDim2.new(0, 12, 0, 0) K.TextColor3 = Color3.new(1, 1, 1) K.TextStrokeColor3 = Color3.new(0, 0, 0) K.TextStrokeTransparency = 0.5 K.TextXAlignment = "Right" K.Font = "SourceSansBold" K.TextSize = 20 -- KILL STREAK KS = Instance.new("TextLabel") KS.BackgroundTransparency = 1 KS.Text = killstreak KS.Parent = T KS.Size = UDim2.new(0, 165, 0, 35) KS.Position = UDim2.new(0, 21, 0, 0) KS.TextColor3 = Color3.new(255,0,0) KS.TextStrokeColor3 = Color3.new(0, 0, 0) KS.TextStrokeTransparency = 0.5 KS.TextXAlignment = "Right" KS.Font = "SourceSansBold" KS.TextSize = 20 -- AVATAR IMAGE P = Instance.new("ImageLabel") P.BackgroundTransparency = 1 P.Image = Avatarurl..plr.Name P.Parent = T P.Size = UDim2.new(1.25,0,1.25,0) P.Position = UDim2.new(-1, 0, 0, 0) end end end

And then the Screen Gui - Script:

function playerleft(player)
    if script.Parent.Holder:FindFirstChild(player.Name) then
        script.Parent.Holder:FindFirstChild(player.Name):remove()
    end
end
game.Players.ChildRemoved:connect(playerleft)

Screenshots: This one shows how the custom player list appears in the game where the Avatar/Name is unique, but the Kills/Streak is cloned: https://ibb.co/h2QrtS

This one shows how the ScreenGui appears in PlayerGui during game play: https://ibb.co/b7dcYS

0
Not sure how you'd change it to use the other players ones, but from what I can see it looks like you're using the localplayer's stats for every kill/streak. TairaAkiko 26 — 6y
0
:/ you're right. I'm just unsure how to get the other player's stats too. Never2Humble 90 — 6y

1 answer

Log in to vote
1
Answered by 6 years ago

the problem is your using the stats for the same player, how you would fix this is getting the stats for each player as you loop through them.

https://gyazo.com/011f344c332a36b8b0c47a9d8b82b996

heres the fixed script:

game.StarterGui:SetCoreGuiEnabled("PlayerList", false)
local plr = game.Players.LocalPlayer
local kills = plr.leaderstats.Kills.Value
local killstreak = plr.leaderstats.Killstreak.Value
local Avatarurl = "http://www.roblox.com/Thumbs/Avatar.ashx?x=500&y=500&Format=Png&username="

while wait(1) do
    for _,plr in pairs (game.Players:GetChildren()) do
        if script.Parent.Holder:FindFirstChild(plr.Name) then

        else
            local kills2 = plr.leaderstats.Kills.Value
            local killstreak2 = plr.leaderstats.Killstreak.Value
            I = Instance.new("Frame")
            I.Name = plr.Name
            I.Parent = script.Parent.Holder
            I.Style = "DropShadow"

-- NAME         
            T = Instance.new("TextLabel")
            T.BackgroundTransparency = 1
            T.Text = plr.Name
            T.Parent = I
            T.Size = UDim2.new(0, 165, 0, 35)
            T.Position = UDim2.new(0, 10, 0, 0)
            if plr.Name == game.Players.LocalPlayer.Name then
                T.TextColor3 = Color3.fromRGB(0, 200, 255)
                else
            T.TextColor3 = Color3.new(1, 1, 1)
            end
            T.TextStrokeColor3 = Color3.new(0, 0, 0)
            T.TextStrokeTransparency = 0.5
            T.TextXAlignment = "Left"
            T.Font = "SourceSansBold"
            T.TextSize = 20

-- KILLS            
            K = Instance.new("TextLabel")
            K.BackgroundTransparency = 1
            K.Text = kills2
            K.Parent = I
            K.Size = UDim2.new(0, 165, 0, 35)
            K.Position = UDim2.new(0, 12, 0, 0)
            K.TextColor3 = Color3.new(1, 1, 1)
                K.TextStrokeColor3 =  Color3.new(0, 0, 0)
                K.TextStrokeTransparency = 0.5
                K.TextXAlignment = "Right"
                K.Font = "SourceSansBold"
                K.TextSize = 20

-- KILL STREAK
            KS = Instance.new("TextLabel")
            KS.BackgroundTransparency = 1
            KS.Text = killstreak2
            KS.Parent = T
            KS.Size = UDim2.new(0, 165, 0, 35)
            KS.Position = UDim2.new(0, 21, 0, 0)
            KS.TextColor3 = Color3.new(255,0,0)
                KS.TextStrokeColor3 =  Color3.new(0, 0, 0)
                KS.TextStrokeTransparency = 0.5
                KS.TextXAlignment = "Right"
                KS.Font = "SourceSansBold"
                KS.TextSize = 20


-- AVATAR IMAGE 
            P = Instance.new("ImageLabel")
            P.BackgroundTransparency = 1
            P.Image = Avatarurl..plr.Name
            P.Parent = T
            P.Size = UDim2.new(1.25,0,1.25,0)
            P.Position = UDim2.new(-1, 0, 0, 0)

end
end
end





0
It worked perfectly!! Thank you!! :)! Never2Humble 90 — 6y
Ad

Answer this question