Free Online Tool — No Install Required

Protect Your Lua &
LuaU Scripts

Project NewTop is a free Lua and LuaU obfuscator built for Roblox developers. Paste or upload your script, pick a protection level, and get back unreadable — but fully functional — code in seconds.

Start Obfuscating — It's Free How it works
EXAMPLE · STRONG PRESET
-- Your original script local function getSecret() local key = "my_private_api_key" return key end print(getSecret())
OBFUSCATED OUTPUT
--[[Project NewTop | Strong]] return(function(...) local _0x4f2a={0x1a3b%(0x44c*0x832); "\89\112\106\80\71\112\110\115\118\54"; -0xF1878+0x133E851;} local _0x7c1={function(_0xa) return _0x4f2a[_0xa+1] end} ... end)(getfenv and getfenv()or _ENV,...)
How it works

Three steps to protected code

No account needed to try it. Log in with Discord to save your settings and access higher rate limits.

1
Paste or upload your script
Type directly into the editor, paste from your clipboard, or upload a .lua file. The obfuscator handles files up to 500 KB — including large, complex Roblox scripts.
2
Choose a protection level
Pick from four presets depending on how much protection you need versus how much you care about output size. Strong is recommended for anything you're distributing publicly.
3
Copy or download the result
The obfuscated output appears instantly. Click Copy to paste it anywhere, or click Download to save it as a .lua file named Obfuscated_RandomString.lua.
Obfuscated_Xk3pQm7rWz.lua ← downloaded automatically
Protection levels

Pick the right level for your script

Every preset produces code that runs identically to the original — just impossible to read.

Minify
Removes all whitespace, comments, and renames variables to short names. Smallest output size.
Smallest size Fast Basic protection
Weak
Minification plus variable and function name scrambling. Good for quick deterrence.
Name scrambling Light encryption
Medium
Adds string encryption and constant obfuscation through math expressions. Solid everyday protection.
String encryption Math constants Constant arrays
Features

Everything you need to protect your work

Built specifically for Roblox Lua and LuaU developers.

🔒

String Encryption

Every string literal in your script is encrypted and only decrypted at runtime. Static analysis reveals nothing readable.

⚙️

Virtual Machine

The Strong preset compiles your script into bytecode for a custom virtual machine. Decompilers produce useless output.

🛡️

Anti-Tamper

Built-in integrity checks detect modification attempts and crash the script before it can be reverse engineered.

📁

File Upload & Download

Upload a .lua file directly. Download the obfuscated result as a file — no copy-paste needed.

Fast Processing

Results in seconds. Works with large scripts — up to 500 KB — without freezing your browser.

🆓

Free to Use

Log in with Discord and start obfuscating immediately at no cost. Optional upgrades available for power users.

🔑

API Access

Integrate obfuscation into your own pipeline using a simple REST API. Free key included with every account.

🎲

Earn Free Coins

Complete social tasks and daily offers to earn coins without spending Robux. Spend them on upgrades and custom API keys.

API

Automate obfuscation in your own tools

Every account comes with a free API key. Send a POST request — get back protected code. No extra setup.

POST /api/obfuscate
-- Request headers
X-Api-Key:  Free_YourKeyHere
Content-Type: application/json

-- Request body
{
  "code":   "print('hello world')",
  "preset": "Strong"
}

-- Success response
{
  "success": true,
  "result":  "--[[Project NewTop]] return(function(...)..."
}

-- Rate limit response
{
  "error": "Rate limit exceeded (3 req/min)."
}

Free keys: 3 req/min  ·  Premium keys: 100 req/min  ·  Custom keys: set your own limit

Ready to protect your scripts?

Free to use. No install. No credit card. Just log in with Discord and start obfuscating.

Open Project NewTop