Lua source protection

Lua obfuscator for code you ship.

Open a Lua file, choose a protection level, and download the protected script. The build report records the engine version, seed, and output hash.

Target
Roblox Luau
Runtime
No loadstring
Access
Checking access

Obfuscation workbench

Source ready. Choose protection and build.

Source is not saved
LUAU
Ln 1, Col 1 0 B UTF-8 Spaces: 4

Drop a .lua or .luau file. Ctrl+Enter to build. Tab moves between controls.

Public builds are processed for this request and are not saved as projects. No third-party scripts load in this workbench. Source handling

How a build works

We parse the generated Lua before delivery and test compiler changes against the Luau runtime. Test each download in your own environment too. Build and testing guide.

01

Parse

Lua source is tokenized into an abstract syntax tree. Supported type syntax is removed while runtime behavior remains intact.

Lexer + AST
02

Virtualize

The entire Lua program becomes custom bytecode. Closures, calls and loops run through a randomized virtual machine in every tier.

Whole program
03

Protect

Instructions stay masked until execution. Basic blocks are shuffled, constants decode on demand, and Maximum adds a second virtual machine.

Fresh build randomness
04

Verify

Generated Lua is parsed before delivery. Integrity checks reject damaged bytecode. Compiler tests run original and protected programs in the Luau runtime.

Semantic tests

Limits of client-side protection

If someone runs your script, they can inspect what it does. Obfuscation makes that work harder, but it cannot hide a secret that must reach their machine. Keep credentials and important decisions on your server.

License keys let you grant or revoke access to a release. They cannot make client-side code private.

Developer API

Use the workbench for manual builds. For release pipelines, verified accounts can fund a prepaid API balance and create metered keys for Lite or Advanced builds. Deposits start at $10; available payment methods appear in the dashboard. Omit the seed for a fresh build.

View Developer API funding

Method
POST
Route
/v1/developer/obfuscate
Limit
500 KB
Build budget
30 seconds
request.jsonJSON
{
  "source": "local message = 'protected'",
  "tier": "advanced",
  "seed": "release-001",
  "banner": false,
  "layers": 1,
  "antiDebug": false
}

422: source or settings need attention. 429: request limit reached. 503: compiler busy; retry after the indicated delay.

Report a broken build

Send the source pattern that fails, the build identifier, and the behavior you expected. You can open a ticket from your dashboard.

Lua guides

Start with your target runtime. These notes cover the checks we can run and the ones you still need to perform in the game or app where your script runs.

Browse the guide index or read how builds are checked.

Common questions

Runtime support, access, and source handling.

What does a Lua obfuscator do?

hide.lat compiles your script into custom bytecode and packages it with a Lua interpreter. It masks instructions, encrypts constants, and randomizes the instruction set for each build. How to build and test a script.

Is the Lua obfuscator free?

Lite builds are free with a verified account. Advanced and Maximum require reviewed access.

Does it support Roblox scripts?

The primary target is Roblox Luau, including type annotations, compound assignment, continue and interpolation. Lua 5.1 code using the shared language subset may also work; runtime-specific features must be checked in your target. Read the Roblox Lua obfuscation guide before distributing a build.

What about MoonLoader and SA:MP Lua?

Some Lua 5.1 scripts may work, but FFI, native hooks and game APIs need testing in their actual runtime. See the MoonLoader and SA:MP guide before distributing a protected build.

Does the output require loadstring?

No. The downloaded file contains the protected code and its interpreter. It does not fetch another script with loadstring.

Can obfuscated Lua be reversed?

Any client-side program can be observed while it runs. Good obfuscation raises the time and skill required; it cannot make executable code physically impossible to recover.

Is pasted source stored?

The public workbench processes source for the current request and does not save it as a project. Authenticated dashboard projects use encrypted storage and explicit ownership controls.