the question really says it all but the values that do not save are the MaxHealth values when they are updated the server prints Saved that players MaxHealth Data but when they join back its the same as before like nothing happened to it
script:
local DS2 = require(1936396537)
local runservice = game:GetService("RunService")
game.Players.PlayerAdded:Connect(function(plr)
local speedData = DS2('Speed', plr)
local healthData = DS2('Health', plr)
local Speed = Instance.new("Folder")
Speed.Name = "Speed"
Speed.Parent = plr
local Five = Instance.new("BoolValue")
Five.Name = "Five"
Five.Parent = Speed
local Ten = Instance.new("BoolValue")
Ten.Name = "Ten"
Ten.Parent = Speed
local Fifteen = Instance.new("BoolValue")
Fifteen.Name = "Fifteen"
Fifteen.Parent = Speed
local Twenty = Instance.new("BoolValue")
Twenty.Name = "Twenty"
Twenty.Parent = Speed
for i,v in pairs (Speed:GetChildren()) do
v.Changed:connect(function()
local Saving = {
["Five"] = (plr.Speed).Five.Value;
["Ten"] = (plr.Speed).Ten.Value;
["Fifteen"] = (plr.Speed).Fifteen.Value;
["Twenty"] = (plr.Speed).Twenty.Value;
}
speedData:Set(Saving)
print('Saved '..plr.Name..'s Speed Data')
end)
end
print("Gave "..plr.Name.." Speed Data")
local SavedItems = speedData:Get(nil)
if SavedItems then
Five.Value = SavedItems.Five or false
Ten.Value = SavedItems.Ten or false
Fifteen.Value = SavedItems.Fifteen or false
Twenty.Value = SavedItems.Twenty or false
print(plr.Name.." had Speed data")
else
Five.Value = false
Ten.Value = false
Fifteen.Value = false
Twenty.Value = false
print(plr.Name.." didn't have Speed data")
end
local MaxHealth = Instance.new("Folder")
MaxHealth.Name = "MaxHealth"
MaxHealth.Parent = plr
local First = Instance.new("BoolValue")
First.Name = "First"
First.Parent = MaxHealth
local Second = Instance.new("BoolValue")
Second.Name = "Second"
Second.Parent = MaxHealth
local Third = Instance.new("BoolValue")
Third.Name = "Third"
Third.Parent = MaxHealth
local Fourth = Instance.new("BoolValue")
Fourth.Name = "Fourth"
Fourth.Parent = MaxHealth
local Fifth = Instance.new("BoolValue")
Fifth.Name = "Fifth"
Fifth.Parent = MaxHealth
for i,v in pairs (MaxHealth:GetChildren()) do
v.Changed:connect(function()
local Saving = {
["First"] = (plr.MaxHealth).First.Value;
["Second"] = (plr.MaxHealth).Second.Value;
["Third"] = (plr.MaxHealth).Third.Value;
["Fourth"] = (plr.MaxHealth).Fourth.Value;
["Fifth"] = (plr.MaxHealth).Fourth.Value;
}
healthData:Set(Saving)
print("Saved "..plr.Name.." MaxHealth Data")
end)
end
print("Gave "..plr.Name.." MaxHealth Data")
SavedItems = healthData:Get(nil)
if SavedItems then
First.Value = SavedItems.First or false
Second.Value = SavedItems.Second or false
Third.Value = SavedItems.Third or false
Fourth.Value = SavedItems.Fourth or false
Fifth.Value = SavedItems.Fifth or false
print(plr.Name.." had MaxHealth data")
else
First.Value = false
Second.Value = false
Third.Value = false
Fourth.Value = false
Fifth.Value = false
print(plr.Name.." didn't have MaxHealth data")
end
end)
game:BindToClose(function()
if runservice:IsStudio() then
return
else
wait(3)
end
end)

2 comments
:Set(Saving)??? wth..... its meant to be SetAsync(tbl, Saving)
greatneil its a DataStore2