Limitations

Known limits and experimental features of the Obscurau engine.


The Obscurau engine imposes specific limits based on your selected target and plan.

Experimental Targets

The engine provides stable support for Luau and LuaJIT. The following targets are experimental:

  • Roblox: Uses the Luau VM backend. Requires Roblox Studio or TestService certification before production release.
  • FiveM: Uses the Portable Lua backend. Requires manual FiveM runtime certification.
  • Warcraft 3: Uses the Portable Lua backend.
  • World of Warcraft: Uses the Portable Lua backend.
  • Garry’s Mod: Uses the Portable Lua backend.

Selecting an experimental target via the API automatically provisions the necessary engine entitlements for these runtimes.

Portable Lua Backend

The engine uses the Portable Lua backend when you select Lua 5.1 through 5.5, LuaJIT, or the experimental game engines.

This backend emits Lua 5.1-compatible source code so it can execute across older runtimes. It does not natively parse or compile version-specific syntax additions from Lua 5.2+ (like bitwise operators or the <close> attribute). If you pass incompatible syntax to the compiler, obfuscation fails.

Garbage Collection Fixes

The capabilities contract lists enableGcFixes (GC Fixes) under the Business plan. The engine currently flags this feature as unsupported (supported = false). Activating this toggle has no effect on the output.

Upvalue Counts

Obscurau functions capture more upvalues than standard functions. Environments that limit upvalue counts or rely on precise getupvalue behavior fail when running obfuscated code.

Debug Library Interoperability

Obfuscated scripts return internal VM information when passed to debug.getinfo, debug.getlocal, or debug.getupvalue. Code that depends on exact line numbers, variable names, or stack levels from the debug library fails.

If you disable line information (disableLineInformation = true), the engine removes the error handling wrapper. This fixes stack level limitations but hides the origin line of runtime errors.