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

I am trying to make this script save all the values and names in the folder, what am i doing wrong?

Asked by 5 years ago
local DataBaseStore = game:GetService("DataStoreService"):GetDataStore("tng-ds-pesl")

local StatSholder = script.DataTemplate



game.Players.PlayerAdded:Connect(function(NewPlayer)

local Key = "WGK-ID:" .. NewPlayer.userId

local GetSave = DataBaseStore:GetAsync(Key)

local DataBaseFolder = Instance.new("Folder", NewPlayer)

DataBaseFolder.Name = "PlayerData"

for i, StatsFolders in pairs(StatSholder:GetChildren())do

for t, StatNames in pairs(StatsFolders:GetChildren())do

for k, Stats in pairs(StatNames:GetChildren())do

local NewStats = Instance.new(Stats.ClassName)

NewStats.Name = Stats.Name

NewStats.Value = Stats.Value

NewStats.Parent = DataBaseFolder

end

end

end

if GetSave then

for i, StatsFolders in pairs(script.DataTemplate:GetChildren())do

for t, StatNames in pairs(StatsFolders:GetChildren())do

for k, Stats in pairs(StatNames:GetChildren())do

DataBaseFolder[StatsFolders.Name].Value = GetSave[i]

DataBaseFolder[StatNames.Name].Value = GetSave[i]



DataBaseFolder[Stats.Name].Value = GetSave[i]

print(k, StatsFolders.Name, StatNames.Name, Stats.Name, Stats.Value)

end

end

end

else

local StatsToSave = {}

for i, StatsFolders in pairs(DataBaseFolder:GetChildren())do

for t, StatNames in pairs(StatsFolders:GetChildren())do

for k, Stats in pairs(StatNames:GetChildren())do



table.insert(StatsToSave, StatsFolders.Name, StatNames.Name, Stats.Value)

print(k, StatsFolders.Name, StatNames.Name, Stats.Name, Stats.Value)

end

end

end

DataBaseStore:SetAsync(Key, StatsToSave)

end

while wait(30) do

local StatsToSave = {}

for i, StatsFolders in pairs(DataBaseFolder:GetChildren())do

for t, StatNames in pairs(StatsFolders:GetChildren())do

for k, Stats in pairs(StatNames:GetChildren())do



table.insert(StatsToSave, StatsFolders.Name, StatNames.Name, Stats.Value)

print(k, Stats.Name, Stats.Value)

end

end

end

DataBaseStore:SetAsync(Key, StatsToSave)

end



game.Players.PlayerRemoving:Connect(function(OldPlayer)

local Key = "WGK-ID:" .. OldPlayer.userId

local StatsToSave = {}

for i, StatsFolders in pairs(DataBaseFolder:GetChildren())do

for t, StatNames in pairs(StatsFolders:GetChildren())do

for k, Stats in pairs(StatNames:GetChildren())do



table.insert(StatsToSave, StatsFolders.Name, StatNames.Name, Stats.Value)

print(k, Stats.Name, Stats.Value)

end

end

end



DataBaseStore:SetAsync(Key, StatsToSave)

end)

end)

THIS IS THE ERROR I GET 19:37:52.356 - Character is not a valid member of Folder

My script is in ServerStorage, and the DataTemplate is in the script. My Values are in a Folder within a Folder.

0
Or i could just make smaller separate scripts for each folder? aleandroblingo -35 — 5y

Answer this question