Builtin Types

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.

type float
type double
type int
type int8
type uint
type uint8
type uint16
type uint64
type string
type boolean
type table

float

A 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.

double

A double-precision floating-point number. This is the same data type as all Lua numbers use.

int

32-bit signed integer. Possible values are -2,147,483,648 to 2,147,483,647.

int8

8-bit signed integer. Possible values are -128 to 127.

uint

32-bit unsigned integer. Possible values are 0 to 4,294,967,295.

uint8

8-bit unsigned integer. Possible values are 0 to 255.

uint16

16-bit unsigned integer. Possible values are 0 to 65535.

uint64

64-bit unsigned integer. Possible values are 0 to 18,446,744,073,709,551,615.

string

Strings are enclosed in double-quotes, like this "hi".

boolean

Either true or false.

table

Tables are enclosed in curly brackets, like this {}