I have a playeradded script that adds a player as a folder and includes stats for the game. How do I have it so that if a player joins, the stats board will be updated depending on what has happened during the game.
Data Store Script:
local DataStore = game:GetService("DataStoreService"):GetDataStore("TA5970AJ3B") local ServStorage = game:GetService("ServerStorage") local Players = ServStorage:WaitForChild("Players") local RepStorage = game:GetService("ReplicatedStorage") local StatsChanged = RepStorage:WaitForChild("StatsChanged") local PointsEvent = StatsChanged:WaitForChild("Points") local ReboundsEvent = StatsChanged:WaitForChild("Rebounds") local StealsEvent = StatsChanged:WaitForChild("Steals") local BlocksEvent = StatsChanged:WaitForChild("Blocks") local AssistsEvent = StatsChanged:WaitForChild("Assists") local UpdateBoard = RepStorage:WaitForChild("StatUpdate") game.Players.PlayerAdded:Connect(function(player) --Variables-- local Namee = Instance.new("Folder", Players) --their own folder Namee.Name = player.Name local folder = Instance.new("Folder", Namee) --inside their folder, a stats folder folder.Name = 'Stats' local pts = Instance.new("IntValue", folder) pts.Name = 'Points' pts.Value = 0 local ast = Instance.new("IntValue", folder) ast.Name = 'Assists' ast.Value = 0 local reb = Instance.new("IntValue", folder) reb.Name = 'Rebounds' reb.Value = 0 local steal = Instance.new("IntValue", folder) steal.Name = 'Steals' steal.Value = 0 local block = Instance.new("IntValue", folder) block.Name = 'Blocks' block.Value = 0 pts.Changed:Connect(function() PointsEvent:FireAllClients(player, pts.Value) end) ast.Changed:Connect(function() AssistsEvent:FireAllClients(player, ast.Value) end) reb.Changed:Connect(function() ReboundsEvent:FireAllClients(player, reb.Value) end) steal.Changed:Connect(function() StealsEvent:FireAllClients(player, steal.Value) end) block.Changed:Connect(function() BlocksEvent:FireAllClients(player, block.Value) end) player.CharacterAdded:Connect(function(character) --update board for when a player joins UpdateBoard:FireClient(player, pts.Value, ast.Value, reb.Value, steal.Value, block.Value) end) end) game.Players.PlayerRemoving:Connect(function(player) for i, v in pairs(Players:GetChildren()) do if v.Name == player.Name then v:Destroy() end end end)
Local Script:
local player = game.Players.LocalPlayer local playergui = player:WaitForChild("PlayerGui") local Stats = playergui:WaitForChild("Stats") local StatFrame = Stats:WaitForChild("Frame") local PlayerFolder = StatFrame:WaitForChild("PlayerFolder") local RepStorage = game:GetService("ReplicatedStorage") local UpdateBoard = RepStorage:WaitForChild("StatUpdate") UpdateBoard.OnClientEvent:Connect(function(pts, ast, reb, steal, block) for i, v in pairs(game.Players:GetPlayers()) do --trying to define each player local Players = PlayerFolder:GetChildren() local PlayersFrame = Players:WaitForChild(v.Name) local StatsFrame = PlayersFrame:WaitForChild("Stats") local pointstext = StatsFrame:WaitForChild("Points") local asttext = StatsFrame:WaitForChild("Assists") local rebtext = StatsFrame:WaitForChild("Rebounds") local stealtext = StatsFrame:WaitForChild("Steals") local blocktext = StatsFrame:WaitForChild("Blocks") pointstext.Text = pts.Value asttext.Text = ast.Value rebtext.Text = reb.Value stealtext.Text = steal.Value blocktext.Text = block.Value end end)