Userdata: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>MrNicNac
>Camoy
fixed headings
Line 1: Line 1:
__TOC__
==Userdata==
 
===What is a Userdata?===
==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.
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==
===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.  
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.  



Revision as of 13:45, 24 December 2010

Userdata

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