i have a problem that the new players data is a clone from old players in the same server
here is the part that i think had the problem:
repeat
Success, PlayerData = pcall(function()
return DataBase:GetAsync(Player.UserId)
end)
if not Success then
warn("Error loading data for player: " .. tostring(Player.UserId) .. " | " .. tostring(PlayerData))
task.wait(2) -- Adding a slight delay before retrying
end
Attempt += 1
until Success or Attempt > 3
if Success then
if not PlayerData then
warn(tostring(DefaultData))
PlayerData = table.clone(DefaultData)
else
-- Ensure missing fields are properly initialized
for key, defaultValue in pairs(DefaultData) do
if PlayerData[key] == nil then
PlayerData[key] = defaultValue
elseif type(defaultValue) == "table" then
for subKey, subDefaultValue in pairs(defaultValue) do
if PlayerData[key][subKey] == nil then
PlayerData[key][subKey] = subDefaultValue
end
end
end
end
end
-- Assign values to leaderstats
Level.Value = PlayerData.Stats["Level"]
StreakWin.Value = PlayerData.Stats["Streak Win"]
Coins.Value = PlayerData.Stats["Coins"]
-- Store cloned data to prevent shared references
Data[Player.UserId] = table.clone(PlayerData)
-- Increment visit count
Data[Player.UserId]["Stats"].Visits += 1
else
warn("Unable to get data for player: " .. Player.UserId)
Player:Kick("Unable to load data, please rejoin.")
return
end