LuaLock is not a textual transform. It compiles Lua and Luau source into a custom bytecode instruction set and ships a generated virtual machine that executes it. The result is a single self-contained script that runs your original program with no external dependencies.
Your code is lowered to a register-based bytecode and wrapped in a VM that LuaLock generates per build. There is no public decompiler for this format because the format itself changes every time you obfuscate.
Opcodes are remapped per build, constants are encrypted and validated at the call site, and string literals never appear verbatim in the output. Tamper-detection guards corrupt execution if the VM is patched, so static and dynamic analysis both come up short.
The Roblox Luau target produces output compatible with Roblox Studio and executor environments. Standard runtimes are covered too — compare what each plan includes on the pricing page, jump straight to the documentation, or protect a script locally with the LuaLock CLI.
Yes. LuaLock has a dedicated Luau target that produces output compatible with Roblox Studio and Roblox executor environments, including per-build opcode remapping and anti-tamper guards.
LuaLock supports Lua 5.1, 5.3, 5.4, LuaJIT, Luau, and Roblox as obfuscation targets. Each target produces output tuned for the specific VM your code runs on.
There is a small overhead from VM dispatch compared to native Lua execution. For most scripts the difference is negligible. Scripts that are already CPU-bound may see a 1–3x slowdown; scripts that spend most time in native Lua library calls are largely unaffected.
No. LuaLock compiles source into a private bytecode format with per-build opcode remapping. Standard Lua decompilers (unluac, LuaDec, etc.) target PUC-Rio bytecode and produce nothing useful against LuaLock output.
No. By default, source code and output are processed entirely in memory and are never written to disk or stored in any database. They are discarded the moment the HTTP response is sent. You can opt in to saving builds in your history, but this is off by default.
Most Lua obfuscators apply textual transforms: renaming variables, inserting junk code, or encoding strings. LuaLock compiles your source to a custom bytecode instruction set and injects a virtual machine that executes it. The instruction set is unique per build, so there is no public decompiler that targets it.