Portable Lua subset
Authored examples and 10 mocked GUI scenarios compare return values in Fengari Lua 5.3. Mocks do not validate Roblox rendering, scheduling or engine behavior.
LUA / LUAU · PROTOTYPE 0.2
Rename locals in a parsed Lua subset. Mask literal bytes. Keep control over what changes.
02 / TRANSFORM
Public service, no sign-in. Pressing Obfuscate uploads source to Cloudflare over HTTPS. This app does not save or log source, and never runs it. Do not submit credentials. Network/account metadata and rate-limit counters are still processed.
--! directives; it never drops them.Single-line strings become reversible byte escapes. No grammar/type validation.
Ready. Source is sent only when you press Obfuscate.
A successful lexical pass is not proof your script works in Roblox. Always test the result in Studio.
Authored examples and 10 mocked GUI scenarios compare return values in Fengari Lua 5.3. Mocks do not validate Roblox rendering, scheduling or engine behavior.
Types and token boundaries are retained. There is no Luau grammar or type checker, and no Roblox API execution.
Direct tests recover escaped bytes, GUI labels and API names from one-line output. No guarded API refusal or ownership marker is counted as resistance.
Put private Roblox logic in ServerScriptService and ModuleScripts inside server-only containers—not ReplicatedStorage or a LocalScript.
Treat every client request as untrusted. Validate RemoteEvent / RemoteFunction arguments, ownership, permissions, state transitions and rate limits on the server.
External APIs need server-held credentials, per-operation authentication and authorization, scoped tokens, replay protection and quotas. Never accept arbitrary code or expose a generic execution endpoint.
Cloudflare cannot run Roblox APIs. It can host this transformation service—not replace the Roblox server runtime.
Lua 5.1 renaming uses a real parser and explicit scopes. Reflection/loader names are rejected in that mode. Error text, debug names, timing and memory use are not preserved.