I’m working on a data handler system in my game, but whenever I update a value in the module, it only shows as upated in the function that updated the value. The first print(PlayerObject)
shows credtis as 2000, but the one at the bottom shows at as 0. Why is this happening?
Server Script
Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(Character)
local PickAxe = Player.Backpack:FindFirstChildOfClass('Tool')
task.wait(1)
Character.Humanoid:EquipTool(PickAxe)
end)
local PlayerObject = dataModule.LoadPlayer(Player)
PlayerObject:UpdateData(2000)
print(PlayerObject)
end)
Players.PlayerRemoving:Connect(function()
end)
task.wait(10)
local PlayerObject = dataModule.LoadPlayer(Players:FindFirstChild('janpieterkes'))
print(PlayerObject)
Module
local Data = {}
local Players = {}
Data.__index = Data
function Data.LoadPlayer(Player : Player)
local playerObject = Players[Player.UserId]
if playerObject then
return Players[Player.UserId]
end
local newPlayer = {}
setmetatable(newPlayer,Data)
newPlayer.Object = Player
newPlayer.Stats = {}
newPlayer.Stats.Credits = 0
newPlayer.Stats.TimePlayed = 0
newPlayer.Stats.CrystalsCollected = 0
newPlayer.Stats.DamageDealt = 0
newPlayer.OwnedPickaxes = {}
newPlayer.OwnedBackpacks = {}
newPlayer.UsedCodes = {}
newPlayer.EquipedPickaxe = false
newPlayer.EquipedBackpack = false
return newPlayer
end
function Data:UpdateData(Value)
self.Stats.Credits = Value
end
function Data:LoadPlayerStats(DS : da)
end
return Data