One of the first things that people will teach you about metatables is that you can put elements in the metatable that aren't in the table. Then, when you try to index an element in the table that isn't there, the script looks for that element in the metatable. This is a concept that I'm trying to experiment with:
t = {}
mt = {hi = "hi"}
setmetatable(t, mt)
print(t.hi)
This printed "nil", which it should've if the metatable wasn't attached. The metatable was attached though. What am I doing wrong here?

3 comments
I swear you didn't have to do that in old Roblox.
Oh, I don't know o:
If you were using metatables in an older version of ROBLOX, you'd still have to actually use metamethods for it to work. Are you thinking about the change to _G?