DataStats Not Appearing

Okay so, I have created two scripts. Both return no errors at all, however when I load in the game the DataValues aren’t in the folders…

ServerScriptService > EA_Claim

local Services = {
	DataStore = game:GetService("DataStoreService")
}

local DataStores = {
	--Claimed = Services.DataStore:GetDataStore("ms_ea_store_1_data_save"),
	Claimed = Services.DataStore:GetDataStore("test"),
}

local PlayerStats_MainFolder

game.Players.PlayerAdded:Connect(function(Player)
	local PlayerDataID = "rs_playerdata_saved_id" .. Player.UserId .. "_global_data"

	PlayerStats_MainFolder = Instance.new("Folder")
	PlayerStats_MainFolder.Name = "EA_Data"
	PlayerStats_MainFolder.Parent = Player

	local PlayerStats_TotalExperience = Instance.new("BoolValue")
	PlayerStats_TotalExperience.Name = "MoneyCollected"
	PlayerStats_TotalExperience.Value = DataStores.Claimed:GetAsync(PlayerDataID) or false
	PlayerStats_TotalExperience.Parent = PlayerStats_MainFolder
end)

game.Players.PlayerRemoving:Connect(function(Player)
	local PlayerDataID = "rs_playerdata_saved_id" .. Player.UserId .. "_ea_data"
	local DataHost = Player:FindFirstChild("EA_Data")

	DataStores.Claimed:SetAsync(PlayerDataID, PlayerStats_MainFolder.MoneyCollected.Value)
end)

game.Players.PlayerAdded:Connect(function(Player)
	local PlayerDataID = "rs_playerdata_saved_id" .. Player.UserId .. "_global_data"
	local savedValue = DataStores.Claimed:GetAsync(PlayerDataID)

	if savedValue == false then
		local DataHost = Player:FindFirstChild("EA_Data")
		if DataHost then
			local MoneyCollectedValue = DataHost:FindFirstChild("MoneyCollected")
			if MoneyCollectedValue then
				if Player:FindFirstChild("StatsData") then
					wait()
					Player.StatsData.Bank.Value = Player.StatsData.Bank.Value + 375000
					MoneyCollectedValue.Value = true
				else
					MoneyCollectedValue.Value = false
					Player:Kick("Error 2A93, please rejoin the game. If you are unaware of the meaning of this error, make a support ticket.")
				end
			end
		end
	end
end)

ServerScriptService > Leaderstats

local Services = {
	DataStore = game:GetService("DataStoreService")
}

local DataStores = {
	Cash = Services.DataStore:GetDataStore("ms_cashstore_1_data_save"),
	Bank = Services.DataStore:GetDataStore("ms_bankstore_1_data_save"),
	TimePlayed = Services.DataStore:GetDataStore("ms_timestore_1_data_save"),
	JobPoints = Services.DataStore:GetDataStore("ms_jobstore_1_data_save")
}

local PlayerStats_MainFolder

game.Players.PlayerAdded:Connect(function(Player)
	local PlayerDataID = "rs_playerdata_saved_id" .. Player.UserId .. "_global_data"
	PlayerStats_MainFolder = Instance.new("Folder")
	PlayerStats_MainFolder.Name = "StatsData"
	PlayerStats_MainFolder.Parent = Player

	local PlayerStats_Level = Instance.new("IntValue")
	PlayerStats_Level.Name = "Cash"
	PlayerStats_Level.Value = DataStores.Cash:GetAsync(PlayerDataID) or 0
	PlayerStats_Level.Parent = PlayerStats_MainFolder

	local PlayerStats_Experience = Instance.new("IntValue")
	PlayerStats_Experience.Name = "Bank"
	PlayerStats_Experience.Value = DataStores.Bank:GetAsync(PlayerDataID) or 0
	PlayerStats_Experience.Parent = PlayerStats_MainFolder

	local PlayerStats_TimePlayed = Instance.new("IntValue")
	PlayerStats_TimePlayed.Name = "TimePlayed"
	PlayerStats_TimePlayed.Value = DataStores.TimePlayed:GetAsync(PlayerDataID) or 0
	PlayerStats_TimePlayed.Parent = PlayerStats_MainFolder

	local PlayerStats_TotalExperience = Instance.new("IntValue")
	PlayerStats_TotalExperience.Name = "JobPoints"
	PlayerStats_TotalExperience.Value = DataStores.JobPoints:GetAsync(PlayerDataID) or 0
	PlayerStats_TotalExperience.Parent = PlayerStats_MainFolder

	local Variables = {
		Cash = PlayerStats_Level.Value,
		Bank = PlayerStats_Experience.Value,
		TimePlayed = PlayerStats_TimePlayed.Value,
		JobPoints = PlayerStats_TotalExperience.Value
	}

	warn(Player.UserId .. "." .. Variables.Cash .. "." .. Variables.Bank .. "." .. Variables.TimePlayed .. "." .. Variables.JobPoints)
end)

game.Players.PlayerRemoving:Connect(function(Player)
	local PlayerDataID = "rs_playerdata_saved_id" .. Player.UserId .. "_global_data"
	local DataHost = Player:FindFirstChild("StatsData")

	if DataHost then
		local ExistingData = {
			Cash = DataHost.Cash.Value,
			Bank = DataHost.Bank.Value,
			TimePlayed = DataHost.TimePlayed.Value,
			JobPoints = DataHost.JobPoints.Value
		}

		DataStores.Cash:SetAsync(PlayerDataID, ExistingData.Cash)
		DataStores.Bank:SetAsync(PlayerDataID, ExistingData.Bank)
		DataStores.TimePlayed:SetAsync(PlayerDataID, ExistingData.TimePlayed)
		DataStores.JobPoints:SetAsync(PlayerDataID, ExistingData.JobPoints)
	end
end)

local Events = game:GetService("ReplicatedStorage")
local EventToReceive = Events.MoneyEvent

EventToReceive.OnServerEvent:Connect(function(Player, PlayerToGiveCashTo, CashAdded)
	PlayerToGiveCashTo.PlayerGui.StatsClip.AddedCash.Text = "+ $" .. CashAdded
	PlayerToGiveCashTo.StatsData.Cash.Value = PlayerToGiveCashTo.StatsData.Cash.Value + CashAdded
	wait(5)
	PlayerToGiveCashTo.PlayerGui.StatsClip.AddedCash.Text = ""
end)

local EventToReceive1 = Events.TimeEvent

EventToReceive1.OnServerEvent:Connect(function(Player, PlayerToGiveTimeTo, TimeAdded)
	PlayerToGiveTimeTo.StatsData.TimePlayed.Value = PlayerToGiveTimeTo.StatsData.TimePlayed.Value + TimeAdded
end)

local EventToReceive2 = Events.JobEvent

EventToReceive2.OnServerEvent:Connect(function(Player, PlayerToGiveJobPointTo, JobPointsAdded)
	PlayerToGiveJobPointTo.StatsData.JobPoints.Value = PlayerToGiveJobPointTo.StatsData.JobPoints.Value + JobPointsAdded
end)

local EventToReceive3 = Events.BankEvent

EventToReceive3.OnServerEvent:Connect(function(Player, PlayerToGiveBankTo, BankAdded)
	PlayerToGiveBankTo.PlayerGui.StatsClip.AddedCash.Text = "+ $" .. BankAdded
	PlayerToGiveBankTo.StatsData.Bank.Value = PlayerToGiveBankTo.StatsData.Bank.Value + BankAdded
	wait(5)
	PlayerToGiveBankTo.PlayerGui.StatsClip.AddedCash.Text = ""
end)

Empty Folders
image

1 Like

This has been fixed, no support is required.

2 Likes

Why are you using multiple PlayerAdded events? That’s just misuse of them.

2 Likes

I remove those after realising it was dumb, then It started working fine…

1 Like

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