The basic types used in the Factorio API. While Lua only supports the boolean, number, string, and table types (as they relate to the types listed below), the API docs will specify what C++ types these are converted from or to internally.
Throughout the API docs, the terms "array" and "dictionary" are used. These are fundamentally just Lua tables, but have a limitation on which kind of table keys can be used. An array is a table that uses continuous integer keys starting at 1, while a dictionary can use numeric or string keys in any order or combination.
| float | A floating-point number. |
| double | A double-precision floating-point number. |
| int | 32-bit signed integer. |
| int8 | 8-bit signed integer. |
| uint | 32-bit unsigned integer. |
| uint8 | 8-bit unsigned integer. |
| uint16 | 16-bit unsigned integer. |
| uint64 | 64-bit unsigned integer. |
| number | Any kind of integer or floating point number. |
| string | Strings are enclosed in double-quotes, like this |
| boolean | Either |
| nil | Nil is the type of the value |
| table | Tables are enclosed in curly brackets, like this |
| LuaObject | Any LuaObject listed on the Classes page. |
floatA floating-point number. This is a single-precision floating point number. Whilst Lua only uses double-precision numbers, when a function takes a float, the game engine will immediately convert the double-precision number to single-precision.
doubleA double-precision floating-point number. This is the same data type as all Lua numbers use.
int32-bit signed integer. Possible values are -2 147 483 648 to 2 147 483 647.
int88-bit signed integer. Possible values are -128 to 127.
uint32-bit unsigned integer. Possible values are 0 to 4 294 967 295.
uint88-bit unsigned integer. Possible values are 0 to 255.
uint1616-bit unsigned integer. Possible values are 0 to 65 535.
uint6464-bit unsigned integer. Possible values are 0 to 18 446 744 073 709 551 615.
numberAny kind of integer or floating point number.
stringStrings are enclosed in double-quotes, like this "hi".
booleanEither true or false.
nilNil 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.
tableTables are enclosed in curly brackets, like this {}.
LuaObjectAny LuaObject listed on the Classes page.