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.