There are eight basic types in Lua Script Language: nil, boolean, number, string, function, userdata, thread, and table

Nil is the type of the value nil, whose main property is to be different from any other value; it usually represents the absence of a useful value. 

Boolean is the type of the values false and true. Both nil and false make a condition false; any other value makes it true. 

Number represents real (single-precision floating-point) numbers. (The default number in Lua is expressed by double-precision floating-point, but in Awakening, it is single-precision) 

String represents arrays of character. Lua is 8-bit clean: strings may contain any 8-bit character. 

Function is a variable that carry some program code, you can execute it. 

Userdata is provided to allow arbitrary C data to be stored in Lua variables. 

Thread represents independent threads of execution and it is used to implement coroutines. 

Table implements associative arrays, that is, arrays that can be indexed not only with numbers, but with any value (except nil). Tables can be heterogeneous; that is, they can contain values of all types (except nil). 

See Lua 5.1 Reference Manual .


All classes in Awakening's script API is table, most of them carry a userdata inner.

dword is a userdata, used to express a double-word (4 bytes, 32 bits) value.