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