local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local Player_Coins = DataStoreService:GetDataStore("Player_Coins")
local Player_Wins = DataStoreService:GetDataStore("Player_Wins")
local Player_Kills = DataStoreService:GetDataStore("Player_Kills")
local function Updated_Player_Coins(player)
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
error("Failed to find player leaderstats for ".. player.UserId .. " or " .. player.Name)
end
local Coins = leaderstats:FindFirstChild("Coins")
return Coins.Value
end
local function Updated_Player_Wins(player)
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
error("Failed to find player leaderstats for ".. player.UserId .. " or " .. player.Name)
end
local Wins = leaderstats:FindFirstChild("Wins")
return Wins.Value
end
local function Updated_Player_Kills(player)
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
error("Failed to find player leaderstats for ".. player.UserId .. " or " .. player.Name)
end
local Kills = leaderstats:FindFirstChild("Kills")
return Kills.Value
end
local function Save_Player_Data(player, player_Coins, player_Wins, player_Kills)
local success, updated_Coins = pcall(function()
return Player_Coins:UpdateAsync(player.UserId, Updated_Player_Coins(player))
end)
if not success then
error("Failed to update Player Coins for ".. player.UserId .. " or " .. player.Name)
end
local success, updated_Wins = pcall(function()
return Player_Wins:UpdateAsync(player.UserId, Updated_Player_Wins(player))
end)
if not success then
error("Failed to update Player Wins for ".. player.UserId .. " or " .. player.Name)
end
local success, updated_Kills = pcall(function()
return Player_Kills:UpdateAsync(player.UserId, Updated_Player_Kills(player))
end)
if not success then
error("Failed to update Player Kills for ".. player.UserId .. " or " .. player.Name)
end
end
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local Coins = Instance.new("IntValue")
Coins.Name = "Coins"
Coins.Value = 0
Coins.Parent = leaderstats
local Wins = Instance.new("IntValue")
Wins.Name = "Wins"
Wins.Value = 0
Wins.Parent = leaderstats
local Kills = Instance.new("IntValue")
Kills.Name = "Kills"
Kills.Value = 0
Kills.Parent = leaderstats
local success, current_Coins = pcall(function()
return Player_Coins:GetAsync(player.UserId)
end)
if not success then
Coins.Value = 0
error("Failed to retrieve Player Coins for ".. player.UserId .. " or " .. player.Name)
else
Coins.Value = current_Coins
end
local success, current_Wins = pcall(function()
return Player_Coins:GetAsync(player.UserId)
end)
if not success then
Wins.Value = 0
error("Failed to retrieve Player Wins for ".. player.UserId .. " or " .. player.Name)
else
Wins.Value = current_Wins
end
local success, current_Kills = pcall(function()
return Player_Coins:GetAsync(player.UserId)
end)
if not success then
Kills.Value = 0
error("Failed to retrieve Player Kills for ".. player.UserId .. " or " .. player.Name)
else
Kills.Value = current_Kills
end
end)
Players.PlayerRemoving:Connect(Save_Player_Data)
game:BindToClose(function(Close_Reason)
for i, player in Players:GetChildren() do
Save_Player_Data(player)
end
end)
Hello! I’m new to datastore and I’m trying to make a datastore system that saves the player’s data when they enter / leave the game but I’m getting these warns / errors and I don’t know what they mean and how to fix them.


