Skip to main content


The pages in this section present a reference for the Lua API exposed by TAMods core.

Notes on type signature definition#

Lua is dynamically typed, so there are no static checks for the type correctness of scripts. Generally, scripts with type errors will produce a console error message at runtime. Additionally, Lua does not check that functions receive the right number of arguments: extra arguments are ignored, and missing arguments are replaced with nil.

Function signatures in the reference denote the intended types of the function via the following (non-Lua) syntax:

someFunction(arg1: Arg1Type, arg2: Arg2Type): ReturnType

Note that where functions do not return a value, the ReturnType is omitted.

For clarity, the types integer and float are used to distinguish numerical arguments where appropriate, even though Lua's type system only supports a single number type.

Lua does not support 'arrays' or 'tuples' in the traditional sense: most data structures in Lua are Tables. In the reference, List<T> is used to refer to a "list" of items of type T, where the "list" is actually a Table with sequentially numbered one-indexed keys (as Lua indexing normally starts at one).

Tuples in Lua are essentially the same; in the reference they will be denoted like (T1, T2) where T1 is the type of the first element, T2 the second and so on. This corresponds again to a Lua Table with sequentially numbered one-indexed keys.