// luau + lua obfuscation
wYnFuscate compiles your Lua into a one-off virtual machine with encrypted constants, layered anti-tamper protection, and forensic watermarking. Built for Roblox developers who sell what they write.
free tier, no card required · discord
$ wynfuscate reward.lua --security-tier max
reward.lua · 5 lines
reward.obf.lua · virtualized
3
security tiers
15+
compile-time macros
6
lua runtimes
1
unique VM per build
Your script is compiled to a custom instruction set and executed by a VM generated uniquely for every build.
Strings and numbers never appear in plaintext. Constants are decrypted at runtime, with macros available when individual values need even stronger protection.
Multiple anti-tamper methods, both virtualized and non-virtualized, are layered through every build for defense in depth.
Every build can carry a forensic watermark, so if a protected script leaks you can identify which build it came from.
Obfuscation is a trade-off between protection and speed, and you should be the one making it. Compile-time macros give you line-level control: keep a hot loop native, encrypt one specific string, or lock down a single callback, all without touching your build pipeline.
all macros & options →JIT / JIT_MAXMark hot functions for JIT-friendly outputNO_VIRTUALIZEExclude performance-critical loops from the VMENC_STRING("...")Inline string encryption at the call siteENC_NUM(...)Encrypt individual numeric constantsENC_FUNC(...)Encrypt an entire function bodySECURE_CALL(...)Protect function references from hookingSECURE_CALLBACK(...)Harden callbacks passed across boundariesIS_CALLER_WYNFUSCATE()Validate the call chain at runtime--security-tier standardBaseline virtualization and constant encryption. Fastest output, available on every plan.
--security-tier enhancedDeeper control-flow protection and additional runtime checks with moderate overhead.
--security-tier maxEvery layer enabled. Built for scripts where protection outweighs all other concerns.
enhanced and max require a pro plan or above
Closures, metatables, coroutines, task.spawn, sandboxed environments: the VM handles the awkward corners of the language, not just the happy path. Roblox is the primary target, but output runs anywhere the source did.
wYnFuscate ships updates constantly, and most of them start as a bug report or feature request from the community. If something breaks, tell us and we will chase it down. If something is missing, there is a decent chance it lands in the next release.
# automate it later
$ curl -X POST https://wynfuscate.com/api/v1/obfuscate \
-H "Authorization: Bearer $WYN_KEY" \
-F "file=@build/main.lua" \
-F "securityTier=ENHANCED"
# rest api on pro and enterprise plans