LuaRNLUA OBFUSCATOR
API Docs
LOCAL PROCESSING
v1.3.0
✳ A CLEANER LUA WORKFLOW

Your Lua.
Ready to inspect.

A responsive Lua workspace that uses per-build chained payload transformation, a payload integrity guard, and optional Anti-Tamper checks for compatible runtimes.

✓ Lua-only uploads ✓ Downloadable output ✓ No account required

THE WORKSPACE

Process a Lua script

Upload a Lua file, pack it with your LuaRN loader, and optionally include your Anti-Tamper checks.

Starting your LuaRN loader…

Source file

Choose the Lua source you want to protect.

01 / INPUT
Drop your .lua file here

or

ONLY .LUA FILESMAX 1 MB
i

Only .lua uploads are accepted. Files are read in your browser and are not sent to a server.

Automatic anti-dump hardening is always enabled: each build gets a different chained payload transform plus a corruption/tampering integrity check. This complicates simple static extraction but cannot stop a dumper that captures code after runtime reconstruction.

Compatibility mode is the default. The supplied LuaRN-Anti-Tamper.txt rAT module is highly runtime-specific and may deliberately halt on unsupported APIs. Enable only when you know your target runtime supports its checks.

Upload a Lua file to get started.

Output preview

Your output uses per-build chained payload transformation and an integrity guard, plus optional runtime Anti-Tamper checks.

02 / OUTPUT
No output generated yet

Upload a .lua file to pack it through your original loader and preview the downloadable result.

OUTPUT CANVAS

Always test generated files in a safe environment before use.

Starting your LuaRN loader

LuaRN uses your supplied loader and newest Anti-Tamper file. The checks run before your uploaded script when protection is enabled; some checks may halt an incompatible runtime.

01
Upload

Select a .lua source file.

02
Pack

Compress the source and embed it in your loader.

03
Export

Preview, copy, or download the .lua result.

DEVELOPER ACCESS

LuaRN API & SDK

Integrate LuaRN into any HTTPS website with an origin-bound public key. The browser SDK handles obfuscation locally, with per-key quotas, expiry controls, and usage analytics.

API v1.3.0

1. Secure API management

Open the secure administrator console on this same LuaRN website. Use it to create keys, set daily quotas and expiry, inspect traffic analytics, view suspicious-request alerts, and revoke abused keys. Do not enter admin credentials into public website code.

Open secure API console ↗

The API is hosted by this same site. Configure the existing D1 database binding and ADMIN_TOKEN secret before managing keys. Private management routes require the secret and reject cross-origin requests.

2. Add the browser SDK

Load the hosted SDK, then use your key that was registered for the exact HTTPS origin of the current website.

<script src="https://luarn.pages.dev/api-sdk.js?v=132" defer></script>

Local processing — recommended

const result = await LuaRNAPI.obfuscate(luaSource, {
  apiKey: "lrn_pub_YOUR_KEY",
  filename: "script.lua"
});
LuaRNAPI.download(result);

Lua source stays in the visitor’s browser. The API authorization endpoint receives the public key and usage metadata only. Create a separate origin-bound key for each website that uses LuaRN.

3. API reference

Endpoints and operating model.

LuaRNAPI.obfuscate(source, options)Processes locally after a successful authorization; source is not sent to the API.
GET /v1/health · POST /v1/authorizePublic health endpoint and origin-bound authorization. Public keys are not admin secrets.
/v1/admin/keys · /v1/admin/analyticsPrivate admin endpoints, gated by a server-side ADMIN_TOKEN secret.
dailyLimit / expiresAtEach key can have its own daily quota and optional expiration. Expired keys are denied and automatically revoked by the scheduled cleanup.

Traffic analytics are retained for 30 days and store request metadata, not Lua source or raw IP addresses. Origin-bound public keys are intended for normal browser integrations; non-browser clients can forge Origin headers. The browser engine currently loads an LZMA module from esm.sh, so a strict site Content Security Policy must allow the LuaRN host and esm.sh.

✓Done