Why convert LUAU to LUA?
People convert to .LUA to run a script outside Roblox in a standard Lua 5.1 interpreter or to reuse it in a non-Luau project. Because Luau extends Lua rather than replacing it, the conversion is mostly a rename plus manual cleanup of the extra syntax.
How to convert LUAU to LUA
Any text editor (rename and clean up) EASIEST
Change the extension to .lua, then remove type annotations, replace backtick interpolation with string.format, and rewrite continue using a flag or goto.
luau-analyze (find incompatibilities) OPEN-SOURCE
Run luau-analyze script.luau to surface type usage and syntax so you know exactly what to strip before it will parse as Lua.
Standard Lua 5.1 (test the result) FREE
After cleanup, run lua5.1 script.lua to confirm it parses and runs; any remaining Luau syntax will error out here.
About these formats
A .luau file is a plain-text source code file written in Luau, the scripting language Roblox derived from Lua 5.1 with an added gradual type system. It holds the code that drives Roblox…
Open .LUAU details →A LUA file is source code written in Lua, a lightweight scripting language created in 1993. Any code editor (VS Code, Notepad++) opens it for reading or editing. To run it you need the Lua…
Open .LUA details →Quality & what to watch
- Luau-only syntax (type annotations,
|/&type unions, string interpolation,continue) will not parse in plain Lua. - Sandboxed Luau removes
io,os,debugandloadstring; code that never used them ports most cleanly. - There is no automatic Luau-to-Lua converter; the edits are manual.
Frequently asked questions
Can I just rename the file?
What breaks most often?
Does the result run in Roblox?
.lua still works there.