In-browser execution
Lua and Luau run in a dedicated Web Worker through WebAssembly. Output streams as it is printed, Stop ends a run on the spot, and a five-second limit — thirty with long runs on — catches the ones that never end.
Write, run, and share multi-file Lua and Luau projects directly in your browser. No local toolchain, execution backend, or account is required.
Built on a stack Lua developers already trust
Weblua is deliberately small: a fast editor, real runtimes, and frictionless sharing. No accounts, no project setup, no build steps.
Lua and Luau run in a dedicated Web Worker through WebAssembly. Output streams as it is printed, Stop ends a run on the spot, and a five-second limit — thirty with long runs on — catches the ones that never end.
Choose Lua 5.1 through 5.5 or the Luau language, with Luau's task library and require-by-string paths. Weblua is not Roblox Studio and does not provide Roblox APIs or static type analysis.
Source files, the entry point, and the runtime compress into a URL fragment up to 32 KiB. Input, output, and browser-local project metadata stay out of the link.
Copy a lazy-loading iframe for documentation sites that allow embeds. Readers can edit the shared source and run it inline without an SDK or API key.
Normal execution has no code-upload backend. Deployments can optionally enable anonymous Plausible usage events and sanitized Sentry error reports; neither integration intentionally includes project source.
Ctrl+Enter to run, Esc to stop, Shift+Alt+F to format with StyLua. Completion and hover docs follow the selected runtime's standard library, with folding and Lua and Luau syntax highlighting.
Weblua executes Lua 5.1 through 5.5 and Luau through WebAssembly rather than simulating output. Language behavior comes from the selected runtime, while the browser host supplies a virtual project filesystem and preset input.
Open the playground and start typing, or load one of fourteen examples—including a multi-file capability tour with modules and preset input.
A Web Worker runs the selected runtime and the output pane fills line by line as your code prints. Stop it whenever you like, or let the time limit end it—either way you keep the output and the elapsed time.
Copy a source-only project link or iframe. Recipients receive the same files, entry point, and runtime; preset input, output, and saved-project metadata remain local.
Weblua is a focused browser playground, not a replacement for a full local or Roblox toolchain.
Luau code can use language features such as annotations and generics, plus the task library, but Weblua does not emulate Roblox services, instances, globals, or Studio tooling.
Check compiles every file and reports syntax diagnostics. It does not run Luau's static analyzer, infer types, or validate a project against Roblox APIs.
Runs stop after five seconds, or thirty with long runs on, and whatever printed first is kept. Lua 5.4 also has a 32 MiB runtime memory cap, and URL sharing has a 32 KiB encoded limit; larger projects can be exported instead.
There are no paid plans advertised here. Use the hosted playground, deploy the static app yourself, or work directly from the MIT-licensed source.
Use the public browser playground.
$0no account
Build the static app and serve it yourself.
MITyour infrastructure
Inspect, fork, and contribute on GitHub.
OpenMIT licensed
Yes. The hosted playground has no account or server-side run quota, and the source is MIT licensed. Individual runs stop after five seconds, or thirty with long runs on, and source links have a 32 KiB encoded-size limit.
Normal execution does not upload project source to an execution backend. Sharing compresses source into the URL fragment, which is not part of the HTTP request. A deployment owner may optionally enable Plausible usage events and sanitized Sentry error reports; project source is not intentionally included.
Weblua runs Lua 5.1, 5.2, 5.3, 5.4, and 5.5, plus the Luau language. Select one runtime per project. Luau support covers the language runtime, not Roblox APIs or the Roblox production environment.
No. The Check action compiles every source file and reports syntax diagnostics. It does not invoke Luau's static type analyzer, even though Luau annotations and generic syntax can be compiled and executed.
Weblua does not currently guarantee offline startup because it has no service worker or complete PWA cache. An already loaded session can run without an execution-server round trip, and browser HTTP caches may help, but reliable offline mode is not implemented.
Weblua generates a lazy-loading iframe whose /embed#c=2… URL contains the same source-only project payload as a share link. On sites that permit iframes, readers can edit files and re-run the project inline.
Absolutely — Weblua is developed in the open on GitHub. Issues, feature requests, and pull requests are all welcome.
Open the playground, choose a built-in example, or load the multi-file capability tour.
Stop any run and keep its output — or give it 30 seconds with long runs