I’m trying to make OOP work with global tables, it works but sometimes not as because the global table sometimes returns nil and sometimes does not.
_G.TestSubjects = {}
Players.PlayerAdded:Connect(function(Player)
_G.TestSubjects[Player] = Handler.New()
end)
Players.PlayerRemoving:Connect(function(Player)
_G.TestSubjects[Player] = nil
end)
script.Parent.Touched:Connect(function(Player)
local Class = _G.TestSubjects[Player]
print(Class) -- this returns nil
if not Class then return end
Class:Get(true)
end)
script.Parent.ClickDetector.MouseClick:Connect(function(Player)
local Class = _G.TestSubjects[Player]
print(Class) -- does not return nil
if not Class then return end
Class:Get("String") -- this works
end)