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 your own HTTPS websites with origin-bound public keys, per-key quotas, expiry controls, analytics, and optional server-side processing.

API v1.3.0

1. Secure API management

Open the separate administrator console protected by Cloudflare Access. 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 Worker deployment package must be installed and Cloudflare Access configured before the new console is available. Public API endpoints remain separate from private management routes.

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=130" defer></script>

Local processing — recommended

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

Optional server-side processing

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

Local mode keeps the Lua source in the visitor’s browser. Server mode sends source to the Worker and requires per-key enablement, a Worker environment flag, and sufficient CPU allowance.

3. API reference

Endpoints and operating model.

LuaRNAPI.obfuscate(source, options)Processes locally after a successful authorization; source is not sent to the API.
LuaRNAPI.obfuscateRemote(source, options)Optional server processing; uploads source to the Worker and returns generated Lua.
GET /v1/health · POST /v1/authorizePublic health endpoint and origin-bound authorization. Public keys are not admin secrets.
POST /v1/obfuscateOptional server-side transformation; requires a key with server processing enabled and a configured Worker CPU plan.
/v1/admin/keys · /v1/admin/analyticsPrivate admin endpoints, gated by Cloudflare Access and a validated Access JWT.
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 deter casual browser misuse, but an HTTP Origin can be forged outside normal browsers. No obfuscator can guarantee that code is never dumped after runtime reconstruction.

✓Done