Free tools
sunlicense.com/tools has free tools anyone can use without an account, in all ten languages of the site. They're useful on their own; when you want more, a free SunLicense account does the full job.
| Tool | What it does | Where it runs |
|---|---|---|
| License key generator | Random, unique keys in the format you choose (groups, characters per group, prefix, separator, character set, lower case), up to 1,000 at a time; copy them or download a CSV with a license_key column | In your browser |
| Lua obfuscator | Up to 5 KB of Lua 5.1 or LuaU, obfuscated with Prometheus | On SunLicense's task worker |
| JavaScript obfuscator | Up to 5 KB of JavaScript, obfuscated with javascript-obfuscator | On SunLicense's task worker |
| Java and Minecraft plugin obfuscator | Reads a pasted plugin.yml, paper-plugin.yml, bungee.yml, velocity-plugin.json or fabric.mod.json and lists the classes that must keep their names | In your browser |
License key generator
Keys come from your browser's cryptographic random generator (crypto.getRandomValues), every character equally likely. The default format is SunLicense's own: four groups of four from an alphabet without look-alikes (no 0/O, no 1/I/L), about 79 bits of randomness. The page warns below 64 bits. Nothing is sent anywhere.
To use the keys with SunLicense, send them to us as a CSV with Import from another license system, or let SunLicense issue keys itself, in your own format on Lite and Standard with key designs.
Lua and JavaScript obfuscators
Paste a snippet and press Obfuscate. The settings are fixed:
- Lua: Prometheus with strings encrypted, constants moved into a shuffled array, numbers turned into expressions, everything wrapped in a function and names mangled, for Lua 5.1 (FiveM, Garry's Mod, LÖVE) or LuaU (Roblox). The dashboard's Lua obfuscation adds the stronger presets (with a virtual machine) and whole resources.
- JavaScript: javascript-obfuscator's string array (base64-encoded), hexadecimal names and control-flow flattening; global names are kept. The dashboard's JavaScript obfuscation takes whole files and projects, TypeScript included, with your own options.
Limits: 5 KB (5,120 bytes) per snippet, 10 runs a day per network, one snippet at a time across everyone (others wait a moment or are asked to try again), 15 seconds per run. A bot check (Cloudflare Turnstile) may appear. Your snippet is held in memory only while it's obfuscated: it isn't written to disk, logs or the database, and the result is never kept. Don't paste secrets: obfuscation makes code harder to read, not impossible.
The free tools only run when the task worker isn't busy with an organization's task; when it is, the page asks you to try again in a minute.
Java and Minecraft plugin checker
Paste your descriptor and the page lists every class the server loads by name, split into what SunLicense's Java obfuscation keeps by itself and what to add to Keep unrenamed: a paper-plugin.yml's bootstrapper and loader, for example. Fabric mixin configs are listed by file; the worker reads them from your jar. The descriptor is read in your browser and never uploaded.
API
The obfuscators call POST /api/v1/tools/obfuscate on sunlicense.com with { "language": "lua" | "javascript", "luaVersion": "Lua51" | "LuaU", "code": "…", "turnstileToken": "…" }. It answers { "output", "millis", "engine" }, or an error with a code: too_large (413), invalid_code (422, with the engine's detail), timed_out, output_too_large (422), tool_limit (429, Retry-After), captcha_required (400), tools_busy, tools_off, captcha_unavailable (503). It's meant for the page; use the obfuscation API with an account for anything automated.
