Essentially what needs to happen is when a player joins he gets an "Inventory" object created for him:
inventories = {}
game.Players.PlayerAdded:Connect(function(player)
inventories[player.Name] = inventory:new()
end
I need the "inventories" array to be able to be accessed between server an client.
Ive tried using modules and I dont want to use a bunch of bindable/remote events for this.
How do I do this?

2 comments
Use remote functions so they can request information that is theirs. That is probably the best solution for now. Even if you do not want to use remotes
I agree with the above.