Built-in Lua types

For more information on how these types are handled, please check the official Lua 5.1 Reference Manual.

In the API reference, types surrounded by {curly brackets} means a table of said type.


A boolean is a logical value that can be either true or false. This can be used to evaluate logic, for example using comparators between two values returns a boolean. In module states, true means "on", "active" or "pressed", while false means the opposite.

local playerCanMove = false
-- sets a boolean called "playerCanMove" to false
gdt.Led0.State = true
-- sets the "State" of a LED to true, turning it on


A number refers to any sort of numerical value, integer or floating point.

local pi = 3.14159
-- sets a number called "pi" to 3.14159
local knobValue = gdt.Knob0.Value
-- sets a number called "knobValue" to the "Value" property of a knob


A string is a type that holds a text value (a string of characters). See the Lua documentation for various built-in functions to manipulate strings.

local message = "Hello world!"
-- sets a string called "message"
-- displays the string "message"


In Lua, a table is a group of values of a certain type. Tables are described in typing with curly brackets such as {number} for a one-dimensional array, or {{number}} for a two-dimensional matrix.

Tables in Lua are 1-indexed meaning that the first element is numbered 1 and so forth. An example of a two-dimensional table can be manipulated like such:


where variable is your table, column and row are the indices you want to manipulate.

local primes = {1, 3, 5, 7, 9}
-- sets an array called "primes"
-- displays the second entry of "primes"

You can get the size of a table by using # before the name of the table:

local mytable = {"a", "b", "c", "d"}
log(tostring(#mytable)) -- returns 4

If a table is two-dimensional, you need to use one of the inner tables to measure both dimensions:

local mytable = {
	{"a", "b"},
	{"c", "d"},
	{"e", "f"}

log(tostring(#mytable)) -- returns 3, number of rows
log(tostring(#mytable[1])) -- returns 2, length of row 1, which tells us the columns