local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local PlayerDataStore = DataStoreService:GetDataStore("PlayerData")
local function loadData(player)
local success, data = pcall(function()
return PlayerDataStore:GetAsync(player.UserId)
end)
if success and typeof(data) == "table" then
return data
else
return {Yellow = true, Pike = false}
end
end
local function saveData(player, data)
pcall(function()
PlayerDataStore:UpdateAsync(player.UserId, function(oldData)
return data
end)
end)
end
Players.PlayerAdded:Connect(function(player)
local data = loadData(player)
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
end
local yellowValue = leaderstats:FindFirstChild("Yellow")
if not yellowValue then
yellowValue = Instance.new("BoolValue")
yellowValue.Name = "Yellow"
yellowValue.Parent = leaderstats
end
yellowValue.Value = data.Yellow
local pikeValue = leaderstats:FindFirstChild("Pike")
if not pikeValue then
pikeValue = Instance.new("BoolValue")
pikeValue.Name = "Pike"
pikeValue.Parent = leaderstats
end
pikeValue.Value = data.Pike
end)
local function savePlayer(player)
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then return end
local data = {
Yellow = leaderstats:FindFirstChild("Yellow") and leaderstats.Yellow.Value or true,
Pike = leaderstats:FindFirstChild("Pike") and leaderstats.Pike.Value or false
}
saveData(player, data)
end
Players.PlayerRemoving:Connect(savePlayer)
game:BindToClose(function()
for _, player in ipairs(Players:GetPlayers()) do
savePlayer(player)
end
task.wait(2)
end)
