I have a script that reads all keys of a data store, and then it creates a new GUI for each key. I think the part that reads the data store is good, but it still won’t show the newly created GUIs, so I’m 99% sure that it’s a problem with the GUI creating script. I’ll put both scripts here just in case.
Server side DataStore reading script:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local addGui = ReplicatedStorage.FireAddGUI
local DataStoreService = game:GetService("DataStoreService")
local rankedStore = DataStoreService:GetDataStore("RankedStore")
Players.PlayerAdded:Connect(function(plr)
if plr:GetRankInGroup(11635716) >= 254 then
local pages = rankedStore:ListKeysAsync()
local passed = {}
while task.wait(0.1) do
for i, v in ipairs(pages:GetCurrentPage()) do
table.insert(passed,v)
end
if pages.IsFinished == true then
break
end
pages:AdvanceToNextPageAsync()
end
for i, name in pairs(passed) do
addGui:FireClient(plr,name.KeyName)
print("ui request sent")
end
end
end)
Client side GUI creator script:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local fireAddGui = ReplicatedStorage.FireAddGUI
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local playerGui = localPlayer:WaitForChild("PlayerGui")
local resultsScreen = playerGui:WaitForChild("ResultsScreen")
local resultsFrame = resultsScreen.ScrollingFrame
local playerEx = resultsFrame.PlayerExample
local xValue = playerEx.Position.X.Offset
local yValue = playerEx.Position.Y.Offset
fireAddGui.OnClientEvent:Connect(function(plr,name)
if plr == localPlayer then
local player = playerEx:Clone()
player.Visible = true
player.Name = "Player"
player.Position.X.Offset = tonumber(xValue)
player.Position.Y.Offset = tonumber(yValue) - 10
player.Text = name.Name
print("ui added")
end
end)
The output window does print “ui request sent”, but not “ui added”. This is mostly why I think it is a problem with the second script. How can I fix this?