Protect RPG Maker MV / MZ Plugins with JSVMP
RPG Maker MV and MZ plugins are plain JavaScript. If you sell plugins on itch.io or Gumroad, buyers (and non-buyers) can open the .js file and copy features into their own releases. Many commercial authors already ship obfuscated plugins for that reason.
VEILVM is a browser-based JSVMP tool: it compiles selected JS into a custom VM bytecode + interpreter, which is harder to casually edit than rename-only obfuscation.
What works well
- Paid plugin logic you do not want republished
- License / activation helpers that ship with the plugin
- Feature gates for “free demo vs full” builds
Caveats specific to RPG Maker
- Plugin parameters & Plugin Commands must stay reachable. Prefer protecting internal helpers while leaving the parameter-parsing surface readable, or document that users configure via Plugin Manager only.
- Compatibility support gets harder when the body is fully VM-protected. Keep a private unobfuscated copy for your own debugging.
- Forum rules: RPG Maker Web forums allow creators to protect their own plugins; they generally do not want paid plugins advertised as hard sell threads. Host sales on itch.io / Gumroad and keep forum posts informational (demo + terms).
- Do not redistribute or re-protect someone else's plugin.
Suggested workflow
1. Develop and test the plugin unobfuscated in a private project
2. Split “public API” (params, commands) from “core logic” modules if possible
3. Run core logic through VEILVM (High-performance or Dynamic VM)
4. Ship the protected .js with clear Terms of Use (no redistribution / no deobfuscation)
5. Keep the source in private git for updates
For CI or batch builds, use the Pro API (up to 2 MB source per request).
Example shape (illustrative)
Before (keep this private):
// core-economy.js — do not ship plain
function calcDropRate(enemyLevel, luck) {
return Math.min(0.85, 0.05 + enemyLevel * 0.01 + luck * 0.002);
}
After VEILVM: ship the generated interpreter + bytecode instead of the plain function. Wire your plugin header / @param block as usual so Plugin Manager still works.
Try VEILVM
- 3 free runs a day, no sign-up, up to 5 KB/file (resets 00:00 UTC)
- Free: 20 runs/mo, 30 KB/file
- Pro: $9/mo or $79/year — 1,000 runs/mo, API access
Open: https://vm.ldvmp.com