Rojo project conversion
Use -p to walk a Rojo project file and compile every script it references in one command.
Datatype mapping
How Roblox datatypes are translated. See also Macros for the full table.
Instance methods
How instance access, services, and method calls translate.
Lua tuples and multi-return
Luau returns multiple values from a single function (return a, b, c). TypeScript represents this as a tuple [a, b, c].
Using with roblox-ts
The rbxts emit mode (default) is designed so that luau2ts output drops straight into a roblox-ts project.
Migrating from Luau
A pragmatic playbook for moving a real Roblox place from .luau to .ts.
Standard library translation
How Lua / Luau stdlib functions translate to TypeScript.
Source maps and debugging
Emit a source map so you can debug the original .luau source from the compiled .ts.
Custom emit modes
luau2ts ships two emit modes. The right choice depends on what you'll do with the output.
Luau syntax features
Luau extends Lua with type annotations, generalized iteration, string interpolation, and several smaller features. luau2ts handles each one.
Type checking
luau2ts ships two opt-in type checkers that catch semantic errors before you ever run the emitted code. They sit at opposite ends of the translation pipeline so they cover different bug classes.