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.
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.
A double-precision floating-point number. This is the same data type as all Lua numbers use.
32-bit signed integer. Possible values are -2,147,483,648 to 2,147,483,647.
8-bit signed integer. Possible values are -128 to 127.
32-bit unsigned integer. Possible values are 0 to 4,294,967,295.
8-bit unsigned integer. Possible values are 0 to 255.
16-bit unsigned integer. Possible values are 0 to 65535.
64-bit unsigned integer. Possible values are 0 to 18,446,744,073,709,551,615.
Strings are enclosed in double-quotes, like this "hi".
Either true or false.
Tables are enclosed in curly brackets, like this {}