This guide covers obfuscating a Lua or Luau script with LuaLock through the web dashboard, the REST API, and the command-line tool.
Sign in and open the Obfuscator. Drop a .lua or .luau file onto the upload zone (or paste your source), choose the runtime target that matches your VM, and click Obfuscate. Processing completes in a few seconds; then download or copy the protected output.
Issue an API key from your dashboard and POST source to the obfuscation endpoint for automated builds. Prefer local builds? Install the LuaLock CLI (also on npm) and run it in your LuaJIT or Roblox pipeline. Plans and limits are on the pricing page; engine internals are on the features page.
Choosing a target matters: pick Luau for Roblox and Lune environments, or Lua for standard PUC-Rio 5.1–5.4 runtimes. The target must match the VM your code actually runs on, because the generated bytecode and VM are specific to it. Output from the web app, the API, and the CLI is identical for the same input, so you can prototype in the dashboard and automate with the CLI without any difference in protection.
LuaLock accepts .lua and .luau source files. You can upload a file or paste source directly into the dashboard.
Choose Luau for Roblox and Lune, or Lua for PUC-Rio 5.1–5.4. The target must match the runtime your script executes on, since the generated VM is specific to it.
Yes. The web dashboard, REST API, and CLI all use the same engine, so identical input produces identical protected output.