Open source · Rust + WebAssembly

Decompile & deobfuscate
Lua bytecode

Drop a compiled Lua 5.1–5.3 chunk and get readable source back. Everything runs in your browser — your file is never uploaded.

Output
Choose a file to begin
-- Decompiled source will appear here.

Private by design

The decompiler is compiled to WebAssembly and runs in a background worker. No server ever sees your bytecode.

Deobfuscation passes

Constant folding, string and cipher decryption, table and alias inlining, dead-code removal and local renaming.

Control-flow unflattening

Linearizes JMP-spaghetti from flattening obfuscators before decompiling, so the output reads top to bottom.

Frequently asked questions

What is a Lua decompiler?

Lua scripts are often shipped precompiled with luac as bytecode (.luac files, or .lua files that start with \x1bLua). A decompiler reads that bytecode and reconstructs equivalent Lua source code you can read and edit. Local variable names are usually not stored in bytecode, so they come back as generated names like _p0 or _v5.

Which Lua versions are supported?

Standard Lua 5.1, 5.2 and 5.3 bytecode, including Lua 5.2 files whose debug information has been corrupted by obfuscators. Lua 5.4 and LuaJIT bytecode are not supported yet.

Is my file uploaded anywhere?

No. The decompiler is written in Rust and compiled to WebAssembly; it runs inside your browser in a background worker. Your file never leaves your computer.

How do I deobfuscate an obfuscated Lua script?

Choose Deobfuscate. After decompiling, it runs passes that fold constant expressions, decrypt encoded strings, inline table and function aliases, remove dead code and rename locals. If the result is a tangle of jumps, also turn on Unflatten control flow — it undoes control-flow flattening before decompiling.

Why does the output look different from the original source?

Compilation throws away comments, formatting and most names, and the compiler rewrites some constructs. The decompiled code is meant to behave the same, not to match the original text. Decompilation is not perfect — if a file produces wrong output, please open an issue.

Can I use it from the command line?

Yes. The same decompiler is available as an open-source command-line tool — see the GitHub repository.