One of my stats isn't saving

Here Is The Current Code

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local DataStore = DataStoreService:GetDataStore("DataStore")

local function SavePlayerData(Player)
	local UserIdKey = Player.UserId.."-TableData"
	local TableToSave = {
		Player.leaderstats["💰Coins"].Value,
		Player.leaderstats["🏆Wins"].Value,
		Player.HiddenStats.EquipedTag.Value,
		Player.HiddenStats.MinigamerTagOwned.Value,
	}
	local Success, errormessage = pcall(function()
		DataStore:SetAsync(UserIdKey, TableToSave)			
	end)
	if Success then
		print("Data was Saved")
	else
		print(errormessage)
	end
end

Players.PlayerAdded:Connect(function(Player)
	local UserIdKey = Player.UserId.."-TableData"

	local Leaderstats = Instance.new("Folder")
	Leaderstats.Name = "leaderstats"
	Leaderstats.Parent = Player

	local Money = Instance.new("IntValue")
	Money.Name = "💰Coins"
	Money.Parent = Leaderstats

	local Snowballs = Instance.new("IntValue")
	Snowballs.Name = "🏆Wins"
	Snowballs.Parent = Leaderstats

	local hidden = Instance.new("Folder")
	hidden.Name = 'HiddenStats'
	hidden.Parent = Player

	local equipedtag = Instance.new("StringValue")
	equipedtag.Name = 'EquipedTag'
	equipedtag.Parent = hidden

	local minigtag = Instance.new("BoolValue")
	minigtag.Name = 'MinigamerTagOwned'
	minigtag.Parent = hidden

	local data
	local Success,Err = pcall(function()
		data = DataStore:GetAsync(UserIdKey)
	end)

	if data ~= nil then
		print("data loaded")
		Money.Value = data[1]
		Snowballs.Value = data[2]
		equipedtag.Value = data[3]
		minigtag.Value = data[4]
	else
		Money.Value = 0
		Snowballs.Value = 0
		equipedtag.Value = 'none'
		minigtag.Value = false
	end
end)

Players.PlayerRemoving:Connect(function(Player)
	task.spawn(function()
		SavePlayerData(Player)
	end)
end)

game:BindToClose(function()
	for _, Player in pairs(Players:GetChildren()) do
		task.spawn(function()
			SavePlayerData(Player)
		end)
	end
end)

Perhaps I should make the Hidden stat in a seperate script with a seperate Data Store

Here’s The New Hidden Stat Script

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local DataStore = DataStoreService:GetDataStore("HiddenSave")

local function SavePlayerData(Player)
	local UserIdKey = Player.UserId.."-HiddenData"
	local TableToSave = {
		Player.leaderstats["💰Coins"].Value,
		Player.leaderstats["🏆Wins"].Value,
	}
	local Success, errormessage = pcall(function()
		DataStore:SetAsync(UserIdKey, TableToSave)			
	end)
	if Success then
		print("Hidden Data was Saved")
	else
		print(errormessage)
	end
end

Players.PlayerAdded:Connect(function(Player)
	local UserIdKey = Player.UserId.."-TableData"

	local Hidden = Instance.new("Folder")
	Hidden.Name = "HiddenStats"
	Hidden.Parent = Player

	local mgtag = Instance.new("BoolValue")
	mgtag.Name = "MinigamerTagOwned"
	mgtag.Parent = Hidden

	local equip = Instance.new("StringValue")
	equip.Name = "EquipedTag"
	equip.Parent = Hidden

	local data
	local Success,Err = pcall(function()
		data = DataStore:GetAsync(UserIdKey)
	end)

	if data ~= nil then
		print("hidden data loaded")
		mgtag.Value = data[1]
		equip.Value = data[2]
	else
		print('HIDDEN DATA NOT LOADED')
		mgtag.Value = false
		equip.Value = "none"
	end
end)

Players.PlayerRemoving:Connect(function(Player)
	task.spawn(function()
		SavePlayerData(Player)
	end)
end)

game:BindToClose(function()
	for _, Player in pairs(Players:GetChildren()) do
		task.spawn(function()
			SavePlayerData(Player)
		end)
	end
end)

I’ve noticed that the problem subdue after I removed the “-HiddenData” from UserIdKey. Try leaving the UserId by itself to have the data be able to be saved and retrieved :+1:

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.