Userdata
From Legacy Roblox Wiki
What is a Userdata?
A userdata is the type Lua uses for data structures in the underlying C program. There are not native Lua functions for handling those types, they must be handled via Metatables. All Roblox objects and events are userdata Lua type.
Using Userdatas
You can create a new userdata by passing true to the undocumented newproxy function. This userdata cannot be used for anything other than invoking functions via its metatable.
Example
local ud = newproxy(true) -- new userdata with an empty metatable getmetatable(ud).__index = {Foo = "Bar"} -- index metamethod print(type(ud), ud.Foo) Output: userdata: 0x631fc8 Bar