Short answer: write Lua, press Run. print output appears below the editor; if the chunk fails, the error names what went wrong and the output up to that point stays visible.
Why a real VM and not a translator
Translating Lua to JavaScript is a common shortcut, and it quietly changes semantics: integer division, string coercion, metatables and coroutines never line up exactly. This page runs the actual Lua interpreter, so a snippet that works here works in your editor.
The sandbox
- No file access, no network, no DOM.
- Killed after six seconds of wall-clock time, in a worker the page can terminate.
- A fresh VM for every run, so globals do not leak between attempts.
Want to run SQL instead? The SQL playground executes statements on SQLite, also locally.