Hello, I’ve been trying to fix this for ages but it never saves.
local ds=game:GetService("DataStoreService"):GetDataStore("PlayerData")
game.Players.PlayerAdded:connect(function(plr)
local leaderstats=Instance.new("IntValue",plr);leaderstats.Name="leaderstats"
local clout=Instance.new("IntValue",leaderstats);clout.Name="Clout"
local coins=Instance.new("IntValue",plr);coins.Name="Coins"
local storage=Instance.new("NumberValue",plr);storage.Name="Storage"
local equipped=Instance.new("ObjectValue",plr);equipped.Name="equipped";equipped.Value=game.ReplicatedStorage.FlexTools:FindFirstChild("1¢")
storage.Value=5
local clout_multiplier=Instance.new("NumberValue",plr);clout_multiplier.Name="clout_multiplier";clout_multiplier.Value=1
local coin_multiplier=Instance.new("NumberValue",plr);coin_multiplier.Name="coin_multiplier";coin_multiplier.Value=1
local dela=Instance.new("BoolValue",plr);dela.Name="DelayActive";dela.Value=false
local rank=Instance.new("StringValue",plr.leaderstats);rank.Name="Rank";rank.Value="Noob"
local dsLoaded=Instance.new("BoolValue",plr);dsLoaded.Name="dsLoaded"
--Datastore Part--
local PlayerData;
local CanSave=Instance.new('BoolValue',plr)
CanSave.Name="CanSaveData"
CanSave.Value=true
local DataFetchSuccess,ErrorMessage=pcall(function()
PlayerData=ds:GetAsync(plr.UserId)
end)
if DataFetchSuccess then --Data successfully loaded.
dsLoaded.Value=true
print("player data loaded,")
if PlayerData~=nil then
local t=PlayerData
--[[
plr.leaderstats.Clout.Value=t.clout
plr.leaderstats.Rank.Value=t.rank
plr.Storage.Value=t.storage
plr.Coins.Value=t.coins
plr.equipped.Value=t.equipped
plr.coin_multiplier.Value=t.multiplier
plr.clout_multiplier.Value=t.cMultiplier
--]]
else
local first=Instance.new("Model",plr);first.Name="FirstTime"
end
else
plr.CanSaveData.Value=false
plr:Kick("Your data failed to load, please try again in a few minutes.")
end
end)
game.Players.PlayerRemoving:connect(function(plr)
local PlayerData={
["clout"]=plr.leaderstats.Clout.Value,
["rank"]=plr.leaderstats.Rank.Value,
["storage"]=plr.Storage.Value,
["coins"]=plr.Coins.Value,
["equipped"]=plr.equipped.Value,
["multiplier"]=plr.coin_multiplier.Value,
["cMultiplier"]=plr.clout_multiplier.Value,
}
if plr.CanSaveData.Value==false then return end
local DataWriteSuccess,ErrorMessage=pcall(function()
ds:SetAsync(plr.UserId,PlayerData)
end)
if not DataWriteSuccess then
print("data failed to load")
local Retry_Count=0
while Retry_Count<6 do
wait(60)
local Succeded,Error=pcall(function()
ds:SetAsync(plr.UserId,PlayerData)
end)
if Succeded then break end
Retry_Count=Retry_Count+1
end
end
end)```