Lua Syntax Checker
Paste Lua code and instantly find syntax errors — with the exact line and column of the first problem.
Lua Syntax Checker
🔒 Nothing you enter is sent anywhere or stored. All processing happens in your browser.
How it works
Lua's error messages at runtime can be terse, and in environments like Roblox a single misplaced end or missing then can stop a whole script. This checker parses your Lua the same way an interpreter's front-end does and reports the first syntax error with its exact line and column, so you can jump straight to it — before you run the code.
Paste your code and press check. If it's well-formed you get a clear "valid" confirmation; if not, you see exactly where parsing failed and why (an unexpected token, an unclosed block, a missing keyword). It validates structure and grammar — it doesn't run the code, so it won't catch logic bugs or undefined variables at runtime.
Parsing happens entirely in your browser using a Lua parser, so your scripts are never uploaded — safe for game code and proprietary logic alike.
Examples
Common Lua syntax errors and how to fix them
| Error message | Likely cause | Fix |
|---|---|---|
| 'end' expected | An if / for / while / function block was never closed | Add the matching end |
| 'then' expected | An if or elseif has no then | Put then after the condition |
| unexpected symbol near '=' | Used = (assignment) where == (comparison) was meant | Use == inside conditions |
| unfinished string | A quote was never closed | Close the string, or escape a stray quote |
| malformed number | An invalid numeric literal | Fix the number (e.g. no double dots) |
| '<name>' expected | A keyword or identifier is missing | Check for a missing variable or keyword |
Lua reserved keywords
Using one of these as a variable name causes a syntax error: and break do else elseif end false for function goto if in local nil not or repeat return then true until while.