We use cookies.This website uses essential cookies to operate core features. With your consent, we also use analytics cookies to understand traffic and improve the service. For more details, see our .
Was this tool helpful to use?
Your feedback helps us make it better

Try to reconstruct readable Lua source from standard Lua, LuaJIT, or Luau bytecode in your browser, then copy or download the result.
Choose filesClick or drag to upload a .luac or .out file
Luau and LuaJIT bytecode are also supported
Max 1 MB
Supports standard Lua, LuaJIT, and Luau compiled chunks. Encrypted files, custom protectors, and virtual-machine obfuscation are outside the scope of ordinary bytecode decompilation.
Source will appear here
Choose a .luac or .out file and start decompiling. Comments and original variable names may not be recoverable from bytecode.
Overview
Understand what the tool solves, how it works, and the boundaries of its data.
A decompiler reads instructions, constants, and function structure to reconstruct an approximation of Lua source. Select a .luac, .luac.out, or .out file, then choose automatic detection or a dialect (Lua 5.1–5.5, LuaJIT 2.1, or Luau). Copy or download a successful result as .lua. The limit is 10 MB, and the selected file is processed in the browser.
Bytecode usually omits comments and source layout; local names may be missing. Output is not the author's exact source and may be diagnostic pseudocode or fail in the target interpreter. Use it for inspection, not as a replacement for project source.
Guide
Follow the workflow and verify inputs and outputs with practical examples.
Choose standard Lua, LuaJIT, or Luau bytecode, up to 10 MB. Inspect only authorized files; source text, archives, and custom wrappers are different inputs.
Try automatic detection, then select the compiler's version or dialect if needed. Bytecode depends on version and sometimes build options or platform, so a mismatch may fail or mislead.
Check for the diagnostic pseudocode label. Inspect functions, constants, calls, and control flow; parse and test the .lua result with the matching runtime.
On failure, check the extension, file integrity, dialect, and version. Encryption or a custom protector may be outside ordinary decompilation.
Use cases
See how the tool fits into real work and everyday tasks.
Maintainers can check a build artifact against a target runtime or locate approximate logic when source is missing. Authorized reviewers can inspect behavior clues; learners can compare bytecode with reconstructed constants, calls, and branches.
Output is a clue, not proof of origin, authorship, or safety. Follow access and license rules. For lost source, compare with backups and tests. Record compiler and target details across Lua dialects.
Q&A
Find concise answers to common questions and confusing cases.
It handles standard bytecode. Encryption, custom protection, and virtual-machine obfuscation need separate analysis.
Release bytecode often omits comments, formatting, and local names; recovery is not guaranteed.
Some structure was recovered, but not complete source. Manual correction may be needed.
A browser worker processes the bytecode locally. The page loads the engine resource, but does not upload the selected file for analysis.
Notes
Review scope, result limitations, and important precautions before use.
Bytecode stores runtime instructions, not a source archive. Compilers may omit comments, whitespace, local names, and debug data. Lua, LuaJIT, Luau, and modified builds can differ; reconstructed names may be generated and optimized control flow may look different.
Decompilation is not decryption and does not bypass protection or license checks. Verify the version and target runtime, keep the original, and compare behavior before changes. Analyze only authorized files; output is not a safety certification or production-ready source.
Related
Discover related tools, collections, and available API capabilities.
Lua / Luau Formatter and Syntax CheckerPaste Lua or Luau source, choose a dialect and style options, then format it or check syntax without changing the input.
Lua Bytecode ViewerInspect Lua compiled bytecode locally in your browser, including function prototypes, instructions, constants, and control flow.
Lua Code MinifierTrim comments and whitespace from Lua source, compare the before-and-after text length, and copy the compact result for review.Random Email Address GeneratorGenerate single or bulk email-format test data with RFC-reserved example domains, or add domains you own or are authorized to test.
Luau Static Analyzer and Type CheckerAnalyze Roblox Luau snippets in the official Luau Playground and review type diagnostics and editor hints.