There are no errors within the output, but it doesnt work. I know what the problem is
game.Players.PlayerRemoving:Connect(function()
ds1:SetAsync(player.UserId, gold.Value)
ds2:SetAsync(player.UserId, exp.Value)
ds3:SetAsync(player.UserId, level.Value)
end)
but i dont know how to fix it. Full script:
local ds = game:GetService("DataStoreService")
local ds1 = ds:GetDataStore("GoldSaveSystem")
local ds2 = ds:GetDataStore("ExpSaveSystem")
local ds3 = ds:GetDataStore("LevelSaveSystem")
game.Players.PlayerAdded:Connect(function(player)
local folder = Instance.new("Folder", player)
folder.Name = "leaderstats"
local gold = Instance.new("IntValue", folder)
gold.Name = "Gold"
local exp = Instance.new("IntValue", folder)
exp.Name = "Experience"
local level = Instance.new("IntValue", folder)
level.Name = "Level"
gold.Value = ds1:GetAsync(player.UserId) or 0
ds1:SetAsync(player.UserId, gold.Value)
exp.Value = ds2:GetAsync(player.UserId) or 0
ds2:SetAsync(player.UserId, exp.Value)
level.Value = ds3:GetAsync(player.UserId) or 0
ds3:SetAsync(player.UserId, exp.Value)
exp.Changed:Connect(function()
if player.leaderstats.Experience.Value >= 100 * (player.leaderstats.Level.Value +1) then
player.leaderstats.Experience.Value = 0
player.leaderstats.Level.Value = player.leaderstats.Level.Value +1
end
end)
level.Changed:Connect(function()
player.Character.Humanoid.MaxHealth = 100 * (player.leaderstats.Level.Value +1)
player.Character.Humanoid.Health = 100 *(player.leaderstats.Level.Value +1)
game.Players.PlayerRemoving:Connect(function()
ds1:SetAsync(player.UserId, gold.Value)
ds2:SetAsync(player.UserId, exp.Value)
ds3:SetAsync(player.UserId, level.Value)
end)
end)
end)
