I'm not sure exactly what you mean, but with metatables, you can extend your module and simply reference the data using self.
Script
local PlayerClass = require ( script:WaitForChild('ModuleScript') )
local function PlayerJoined(Player)
local PlayerData = PlayerClass.new(Player)
print ( PlayerData:ReturnStats() )
end
game.Players.PlayerAdded:Connect(function(Player)
PlayerJoined( Player )
end)
game.Players.PlayerRemoving:Connect(function(Player)
local LocatePlayer = PlayerClass.locateplayer(Player)
if LocatePlayer then
LocatePlayer:testprint()
end
end)
for _, Player in pairs(game.Players:GetPlayers()) do
PlayerJoined(Player)
end
ModuleScript
local module = {}
module.PlayersData = {}
module.__index = module
function module:ReturnStats(Player)
return self.Stats
end
function module.new(Player)
local DataStoreTable = setmetatable({
Player = Player;
PlayerName = Player.Name;
UserId = Player.UserId,
Stats = {},
EverythingOwned = {}}, module)
module.PlayersData[Player.Name] = DataStoreTable
return DataStoreTable
end
function module:testprint()
print ( self.PlayerName, 'left' )
end
function module.locateplayer(Player)
module.PlayersData[Player.Name]
end
return module